[英]Evaluation not working in ng-show()
我試圖在ng-repeat
循環的<li>
標記中的某些文本旁邊放置一個選中標記圖標。
HTML
<ul>
<li ng-repeat="nav in tabs.nav">
{{nav.name}}
<i class="fa fa-check my-checked-icon"
ng-show="$index===selectedIndex"
ng-click="selectNav(nav.index)"></i>
</li>
</ul>
JS
$scope.tabs = {
"navs":[
{
"name":"Lorem Ipsum",
"index":0
},
{
"name":"Adipiscing Elit",
"index":1
},
{
"name":"Ut Lbore et Dolore",
"index":2
}
]
};
var selectedIndex = 1;
$scope.selectNav = function(index){
$scope.selectedIndex = index;
};
CSS
.my-checked-icon{
display: none;
}
當我將它們放入{{}}時, $index
和selectedIndex
打印出正確的值。 而且我嘗試不做大括號以及使用==
評估。
我得到錯誤
錯誤:[$ parse:lexerr]詞法分析器錯誤:表達式[“ $ index == selectedIndex”]中0-0列[“]的下一個意外字符。
我在其他地方也看到過人們進行類似評估的其他例子。 問題是什么? 是否有更好的方法以某種方式在控制器內部執行此操作?
嘗試這個
HTML
<ul>
<li ng-repeat="nav in tabs.navs" ng-click="selectNav(nav.index)">
{{nav.name}}
<i class="fa fa-check my-checked-icon"
ng-show="$index===selectedIndex"
></i>
</li>
</ul>
JS
var ncolor;
$scope.tabs = {
"navs":[
{
"name":"Lorem Ipsum",
"index":0
},
{
"name":"Adipiscing Elit",
"index":1
},
{
"name":"Ut Lbore et Dolore",
"index":2
}
]
};
$scope.selectedIndex = 1;
$scope.selectNav = function(index){
$scope.selectedIndex = index;
};
您的驗證沒有錯。 您正在將selectedIndex聲明為變量。 您應該將其定義為$ scope變量。 因此只有這樣,您才會在右側看到選中圖標。 然后將ng-click移至
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.