0
我有一個控制器內部的函數,告訴我是否更改了資源,以便只有在沒有更改時纔會發送服務器請求以保存對象。當初始調用clean函數時,它工作正常。但是,如果在由ng-click
事件觸發的另一個函數中調用該函數,則會得到不同的結果。爲什麼會這樣呢?Angular.js:爲什麼角度等於給我不同的結果?
示例代碼
app.controller('EditorController', ['$scope', 'Item' function($scope, Item) {
$scope.item = Item.get({ id: 1});
$scope.original = angular.clone(item);
$scope.isClean = function() {
return angular.equals($scope.item, $scope.original);
}
$scope.isClean(); //returns true
$scope.save = function() {
if($scope.isClean()) { //is always false here
return;
}
//etc..
}
}]);
以任何機會,是你的Item.get一個AJAX請求? –
值得注意的是,angular會在表單上爲你做髒檢查,只需添加[ng-form](http://docs.angularjs.org/api/ng.directive:form)指令。然後你可以使用'$ scope.item。$ dirty'來檢查髒模型。 –
@JonathanPalumbo這不是來自一個表單,但謝謝,這是很好的知道。 – GSto