angularjs:无法将变量值从控制器传递到视图

时间:2016-05-31 10:35:15

标签: angularjs

(function() {

    angular
        .module('myApp.home', [])

        .factory('myService', function($http) {
            return {
                getInfo: function() {
                    // return something
                }
            };
        })

        .controller('HomeController', function($scope, $routeParams, myService) {
                var my = this;      
                var sid;

                myService.getInfo().success(function(data) {

                    my.id   = data.id;
                    //sid= my.id;
                });

                //my.id     = sid;
        });
})();

我试图在我的视图中访问变量ID。但我无法这样做。我收到了一个未定义的变量错误。

我甚至试图在全局范围内声明变量sid,以便可以从任何地方访问它,我也尝试为其分配值,但这种努力也没有带来任何结果。

我的服务工作正常,他们正在返回数据。我试图在我的视图中使用id,但不知道我把它搞砸了。 有什么帮助吗?

修改

我的HTML就像这样:

<div data-id="my.id"></div>

4 个答案:

答案 0 :(得分:0)

如果要在视图中使用它,则必须将其绑定到范围,例如$scope.id - 请查看this链接以供参考。

答案 1 :(得分:0)

使用controllerAs : vm,然后您就可以在视图中访问vm.id

<强> HTML

<div ng-app="app" ng-controller="HomeController as vm">
     <div data-id="vm.id">{{vm.id}}</div>
</div>

<强>控制器

.controller('HomeController', function () {
    var vm = this;
    vm.id = "someValue";    
});

了解更多信息read this

答案 2 :(得分:0)

以下是您的html,应该如何。

<div ng-app="app" ng-controller="HomeController as home">
     <div data-id="home.id">{{home.id}}</div>
</div>

以下是您的controller部分。

angular.module('app', [])

.controller('HomeController', function () {
    this.id = "someValue";    
});

http://jsfiddle.net/grdmLfxt/

答案 3 :(得分:0)

javascript代码和html的小变化。试试这个。

的Javascript

df.loc[~df.isnull()] = 1  # not nan
df.loc[df.isnull()] = 0   # nan

HTML

(function() {

    angular
        .module('myApp.home', [])

        .factory('myService', function($http) {
            return {
                getInfo: function() {
                    // return something
                }
            };
        })

        .controller('HomeController', function($scope, $routeParams, myService) {
                var my = this;      
                var sid;

                myService.getInfo().success(function(data) {

                    $scope.id   = data.id;  // changed from my.id to $scope.id
                    //sid= my.id;
                });

                //my.id     = sid;
        });
})();