一些朋友和我正在開展一個項目。這是我與AngularJS合作的第二個項目,目前正在使用1.2.3版本。AngularJS複選框的奇怪行爲
儘管我有時會發現它的一些行爲奇怪,不明白爲什麼事情正在發生。
所以情況是這樣的......我在我的CSHTML文件followig:
<div class="checkbox">
<label>
<input name="somecheckbox" type="checkbox" ng-click="click()" ng-model="displayRegardlessOfSomething" />
<label>Display regardless of something</label>
</label>
</div>
<h1>{{displayRegardlessOfSomething}}</h1>
在我的JavaScript文件我有一個僞指令中下面的代碼:
開始的時候:
$scope.displayRegardlessOfSomething = true;
和我有以下幾點:
$scope.click = function() {
console.log($scope.displayRegardlessOfSomething)
}
每當我選中或清除該複選框我總是得到真正 ......然而,奇怪的是,裏面的<h1></h1>
標籤的內容改變....因此,這就像我改變的價值在HTML層上的變量,而不是JavaScript的層上...
這究竟是爲什麼?
我已經解決了通過使用$ parent.displayRegardlessOfSomething的問題,但我不明白爲什麼這解決了這一問題...什麼擺在首位造成的問題?
是的,我明白,這工作對你罰款,這也角文檔中工作正常。 我不認爲這是我的情況有些事情是被引用或按值傳遞有關...所以也許,冥冥中我在我的應用程序的另一個$範圍....但是,我只有一個指令,一個使用命名變量的控制器:/ – Marin
正如我和@null都試圖說的那樣,問題很可能發生在您的父控制器之一(我們沒有)。所以儘量使用對象,而不是原語,換句話說,「在你的ng模型中有一個點」 – NicolasMoise
好吧,我想我明白了。不過,我仍然不太明白衝突可能在我的代碼中的哪個位置顯現:/ 但我會採納您的建議並使用對象:) – Marin