这里有我的javascript代码:
define(['controllers/controllers', 'services/alerts'], function(module) {
'use strict';
return module.controller('alerts', [
'$scope', '$http', 'alerts', function($scope, $http, alerts) {
console.log('alerts controller initialized');
$scope.settings = {};
return $scope.submit = function() {
$scope.busy = true;
console.log('scope', $scope);
return console.log('data', $scope.data);
};
}
]);
});
我尝试记录我期望包含ng-model
=> data.followers
的值的$scope.data
的内容,但是总是显示未定义,但是当我尝试记录$scope
的值内容时,$scope.data
存在。如图所示:
我尝试初始化$scope.data
,但在更改ng-model
=> data.followers
的值后,它总是返回一个空数组。这是我初始化ng-model
时的代码(haml格式)
%input{:type => "checkbox", "ng-checked" => "settings.#{$key}", "ng-model" => "data.#{$key}", "ng-true-value" => "true", "ng-false-value" => "false", "ng-click" => "submit()"}
有什么想法吗?
更新:
已经解决了这个问题。我所做的就是初始化$scope.data并在ng-checked中使用data.#{$key}。这让我卡住了。新手角度程序员在这里。
发布于 2014-02-20 12:25:27
在延迟加载Angular组件时,您需要使用$scope.$apply()
。当使用Require或其他方法延迟加载组件时,函数会在Angular的$digest
循环之外注册到$scope上。使用$scope.$apply()
使$digest
知道您的绑定,并将它们带到应用程序实例中。
您可能还需要使用module.register.controller
而不是module.controller
define(['controllers/controllers', 'services/alerts'], function(module) {
'use strict';
return module.register.controller('alerts', [
'$scope', '$http', 'alerts', function($scope, $http, alerts) {
console.log('alerts controller initialized');
$scope.settings = {};
return $scope.submit = function() {
$scope.busy = true;
console.log('scope', $scope);
return console.log('data', $scope.data);
};
$scope.$apply();
}
]);
https://stackoverflow.com/questions/21898030
复制相似问题