我知道關於此主題已經有很多問題,但我無法讓我的示例工作。angular.js指令與隔離範圍
請參閱plnkr.co#ua32dkF7fz6X2fA0ZAw3的示例。
每個傳情者都有一些額外的信息,當用戶點擊其中一個挑逗者時應該會出現。然而,一旦我點擊其中一個挑逗者,其他信息就會出現在每個挑逗者的下方。我只想在他點擊的一個傳情下方展示他們。
我很確定這是因爲指令共享相同的父範圍。我怎樣才能保持isActive
變量對每個傳情者都是私密的?
我知道關於此主題已經有很多問題,但我無法讓我的示例工作。angular.js指令與隔離範圍
請參閱plnkr.co#ua32dkF7fz6X2fA0ZAw3的示例。
每個傳情者都有一些額外的信息,當用戶點擊其中一個挑逗者時應該會出現。然而,一旦我點擊其中一個挑逗者,其他信息就會出現在每個挑逗者的下方。我只想在他點擊的一個傳情下方展示他們。
我很確定這是因爲指令共享相同的父範圍。我怎樣才能保持isActive
變量對每個傳情者都是私密的?
我會做這樣的:
1)HTML變化:
<teaser ng-repeat="teaser in teasers" teaser="teaser"></teaser>
2)更改指令:
restrict: 'E',
replace: true,
scope: {
teaser: '='
},
controller: function ($scope) {
$scope.isActive = false;
$scope.select = function(teaser) {
$scope.isActive = !$scope.isActive;
};
}
這應做到:http://plnkr.co/edit/EfB3n14Hwk5uijsrp1aR
我所做的是創建指令一個新的範圍,以及移動的主動變的指令範圍。
謝謝您回答。我可能是錯的,但我認爲@Yoshi的回答是更有棱角的風格。 – zemirco 2013-02-13 14:13:56
謝謝!按預期工作。 – zemirco 2013-02-13 14:12:25
還有一件事:你爲什麼使用'controller'而不是'link'函數? – zemirco 2013-02-15 07:14:34
我傾向於使用控制器,當:不使用'$ watch'或使用隔離範圍。 – Yoshi 2013-02-15 08:16:47