這裏是一個工作示例,它保留了在指令範圍內的兩個移動方法。但是,不要使用箭頭(不確定你的意思,即只移動底部元素,或每個箭頭或什麼),只需單擊一個元素即可將其移過來。
myApp.directive('duallist', function() {
return {
restrict: 'E',
replace: true,
scope: {
data1: '=',
data2: '='
},
template: '<div><ul class="list"><li ng-repeat="datum in data1" ng-click="move(datum, data1)">{{datum}}</li></ul> <ul class="list"><li ng-repeat="datum in data2" ng-click="move(datum, data2)">{{datum}}</li></ul></div>',
link: function(scope, ele, attrs) {
scope.move = function(datum, dataset) {
if (dataset == scope.data1) {
scope.data2.push(datum);
dataset.splice(dataset.indexOf(datum), 1);
}
else{
scope.data1.push(datum);
dataset.splice(dataset.indexOf(datum), 1);
}
}
}
}
});
工作小提琴:http://jsfiddle.net/joshdmiller/HB7LU/
啊真棒!我認爲我沒有完全理解範圍方面...... – Nicros
該語法創建了一個名爲「隔離範圍」的東西,它包含與視圖中聲明的父範圍的屬性綁定的屬性,允許您將HTML完全聲明爲你在問題中提出要求。它的語法起初有點複雜(我知道那個等號),你應該讀一下我發送的鏈接。 –
會不會,謝謝! – Nicros