【发布时间】:2016-11-02 10:37:28
【问题描述】:
我遇到了一个问题,我想在用户开始提供输入..
由于某些原因,我无法使用ng-value。
我试图让$scope.a 进入我的initializeToZero() 函数。它返回一个空的 json 对象。
我什至尝试过使用$scope.$apply(),但运气不好。
我得到的只是一个空的 json 对象。
有什么方法可以在控制器中初始化它们,而不管输入和键的数量是多少?
键的名称会完全不同...我只是在这里提供了通用的键名...所以请确保您没有对其进行硬编码。
我在 sn-p 中提到了ng-controller,但我使用的是ui.router
angular.module('myApp', [])
.controller('myCtrl', function($scope) {
initializeToZero();
function initializeToZero() {
if (!$scope.$$phase) {
$scope.$apply();
console.log($scope.a);
} else {
setTimeout(initializeToZero, 1000);
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl" ng-init="a = {}">
<input type="number" ng-model="a['key1']">
<input type="number" ng-model="a['key2']">
<input type="number" ng-model="a['key3']">
<input type="number" ng-model="a['key4']">
<input type="number" ng-model="a['key5']">
<input type="number" ng-model="a['key6']">
<input type="number" ng-model="a['key7']">
<input type="number" ng-model="a['key8']">
</div>
【问题讨论】:
-
您是否尝试过在 ng-init 中调用 initializeToZero,并将“a = {}”作为 initializeToZero 函数的第一行?还是在 angular.element(document).ready 函数中调用 initializeToZero?
-
是的,我试过了..它也没有用..@RicardoPontual
标签: javascript angularjs json angularjs-scope angular-ngmodel