ng-change 函数在数据加载之前在页面加载时获得 运行?
ng-change function gets run on page load before data loads?
我的一个控制器函数在我的数据加载之前得到 运行。
html:
<div ng-show="item.name">
<input ng-change="doChange()" ng-model="item.name">
</div>
我的控制器:
$scope.item = { name: 'bob' };
$scope.other = {};
$scope.doChange = function() {
$scope.item = $scope.other['test'].name
}
// load the data now!
MyService.getData().success(function(newdata) {
$scope.item = newdata.item;
$scope.other = newdata.other;
});
我的服务:
app.factory("MyService", function($http) {
return {
getData: function() {
return $http.get("/data");
}
}
});
这导致
TypeError: Cannot read property 'name' of undefined
因为 doChange()
在服务加载数据之前执行。我不确定为什么会这样。当输入更改时,不应该 doChange
仅 运行,但它在页面加载时变得 运行。
改变
$scope.doChange() {
$scope.item = $scope.other['test'].name
}
到
$scope.doChange = function() {
$scope.item = $scope.other['test'].name
}
抱歉,我更改了代码的其他地方 item.name
这就是它在页面加载时启动的原因。
我以为 ng-model
以某种方式在 <input>
上触发了 ng-change
,但我只是在犯傻。
我的一个控制器函数在我的数据加载之前得到 运行。
html:
<div ng-show="item.name">
<input ng-change="doChange()" ng-model="item.name">
</div>
我的控制器:
$scope.item = { name: 'bob' };
$scope.other = {};
$scope.doChange = function() {
$scope.item = $scope.other['test'].name
}
// load the data now!
MyService.getData().success(function(newdata) {
$scope.item = newdata.item;
$scope.other = newdata.other;
});
我的服务:
app.factory("MyService", function($http) {
return {
getData: function() {
return $http.get("/data");
}
}
});
这导致
TypeError: Cannot read property 'name' of undefined
因为 doChange()
在服务加载数据之前执行。我不确定为什么会这样。当输入更改时,不应该 doChange
仅 运行,但它在页面加载时变得 运行。
改变
$scope.doChange() {
$scope.item = $scope.other['test'].name
}
到
$scope.doChange = function() {
$scope.item = $scope.other['test'].name
}
抱歉,我更改了代码的其他地方 item.name
这就是它在页面加载时启动的原因。
我以为 ng-model
以某种方式在 <input>
上触发了 ng-change
,但我只是在犯傻。