0
在我的角度js應用程序中,我注意到DOM在任何時候調用函數都會更新。即使函數沒有更改任何$ scope變量,也會發生這種情況。
我正在使用ng-repeat創建一組複選框,如下所示。
HTML
<a ng-click="someFunction()" >Some Function</a>
<form action="/settings/save">
<label>
<input ng-repeat="option in settings.active" name="options[]" value="{{option}}" checked="checked" />
{{option}}
</label>
<input type="submit" value="Save" />
</form>
JS
angular.module("myapp")
.controller("settingsCtrl", function($scope, $loadServ){
//$loadServ is a service for fetching data from the server
$loadServ("/settings/load")
.success(function(response){$scope.settings = response.data});
$scope.someVariable = "something";
$scope.someFunction = function(){
//There's nothing here yet
}
//More code follows
})
我注意到,當點擊 「有些功能」 按鈕時,所有未選中複選框被選中。我檢查了DOM並意識到所有複選框都是在點擊按鈕時重新呈現的。
只有當$ scope改變時纔有更新DOM的方法嗎? 注意:我不能使用單向綁定,因爲$ scope.settings.active可以通過一些其他函數進行更改
只有當你點擊一個調用你的someFunction的按鈕時,你纔想要發生什麼? –
你可以用你的測試創建一個plunker或jsbin嗎?它看起來像是一個不受角度控制的DOM(在沒有ng-app的情況下,或在沒有ng-controller的情況下,在特定點) –
我不希望在調用someFunction時重新呈現我的DOM。這是因爲someFunction不會更改$ scope。我不想失去複選框自定義只是因爲一些其他無關的函數被調用 – elSama