2013-04-21 49 views
1

我已經具有以下結構(這是一個「規劃選擇」恢復)一個小部件:什麼是最好的方式,從以「轉移」指令,並使用AngularJs

<div> 
    <ul> 
    <li resume="to" ng-repeat="item in items"></li> 
    </ul> 
    <div class="total"></div> 
    <ul> 
    <li resume="from" ng-repeat="item in items"></li> 
    </ul> 
</div> 

我的指令如下:

plans.directive('resume', function() { 
    return { 
    restrict: 'A', 
    template: '<h3>{{step.name}}</h3><div>{{val}}</div>', 
    link: function($scope, element, attrs, controller) {} 
    }; 
}); 

注:

  • plansangular.module('Plans')
  • items是通過AJAX加載一些數據,並且每個項目都有一個selected屬性
  • 它們共享相同的控制器將要選擇的項目,這是PlansCtrl

我想要什麼:

當用戶完成選擇項目(設置每個「選定」)時,它將只在選擇時顯示在「to」中,並且只有在未選中時才顯示在「發件人」中。我不想硬編碼任何東西,因爲所有東西都是使用AJAX裝入的。

回答

1

假設我理解你的權利,它可能會更好使用the filter filter像這樣:

http://jsfiddle.net/qbGeG/

<div ng-app ng-controller="x"> 
    <b>selected</b> 
    <ul> 
     <li ng-repeat="item in items | filter:{selected:true}" ng-click="item.selected = !item.selected">{{item.name}}</li> 
    </ul> 
    <div class="total"></div> 
    <b>unselected</b> 
    <ul> 
     <li ng-repeat="item in items | filter:{selected:!true}" ng-click="item.selected = !item.selected">{{item.name}}</li> 
    </ul> 
</div> 

如果你需要的功能指令,那麼這將是更好的替代整個li元素類似於:<selectableList source="items" />其中您的指令只是使用filterngClick像我以上所做的那樣。

+0

我還是很驚訝MAGIC Angular如何成爲可能,謝謝! – pocesar 2013-04-21 04:21:49

相關問題