我正在尝试使用 ng-init 设置 $scope 属性的值,但无法在 Controller 的 javascript 中访问该值。我究竟做错了什么?这是一个 fiddle :http://jsfiddle.net/uce3H/
标记:
<body ng-app>
<div ng-controller="testController" >
<input type="hidden" id="testInput" ng-model="testInput" ng-init="testInput='value'" />
</div>
{{ testInput }}
</body>
JavaScript:
var testController = function ($scope) {
console.log($scope.testInput);
}
在 javascrippt 中,$scope.testInput 未定义。不应该是“值(value)”吗?
最佳答案
您正尝试在 Angular 完成分配之前读取设置值。
演示:
var testController = function ($scope, $timeout) {
console.log('test');
$timeout(function(){
console.log($scope.testInput);
},1000);
}
理想情况下,您应该按照@Beterraba的建议使用$watch
来摆脱计时器:
var testController = function ($scope) {
console.log('test');
$scope.$watch("testInput", function(){
console.log($scope.testInput);
});
}
关于angularjs - 如何使用 ng-init 设置作用域属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19981627/