Javascript 什么';“这是最好的方式”;“转让”;使用AngularJs从和到的指令

Javascript 什么';“这是最好的方式”;“转让”;使用AngularJs从和到的指令,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我有一个具有以下结构的小部件(它是一个“计划选择器”简历): 我的指示如下: plans.directive('resume',function(){ 返回{ 限制:“A”, 模板:{{step.name}{{val}}, 链接:函数($scope,element,attrs,controller){} }; }); 注: plans是一个angular.module('plans') items是通过AJAX加载的一些数据,每个项都有一个selected属性 它们与将要选择

我有一个具有以下结构的小部件(它是一个“计划选择器”简历):


我的指示如下:

plans.directive('resume',function(){
返回{
限制:“A”,
模板:{{step.name}{{val}},
链接:函数($scope,element,attrs,controller){}
};
});
注:

  • plans
    是一个
    angular.module('plans')
  • items
    是通过AJAX加载的一些数据,每个项都有一个
    selected
    属性
  • 它们与将要选择的项目共享同一控制器,即
    PlansCtrl
我想要的是:


当用户完成选择项目(设置每个“已选择”)时,选择项目时,它将仅显示在“收件人”中,未选择项目时,它将仅显示在“发件人”中。我不想硬编码任何东西,因为所有东西都是使用AJAX挂载的。

假设我正确理解您的意思,那么最好使用这样的方式:


挑选出来的
  • {{{item.name}
未选择
  • {{{item.name}

如果您需要将功能作为一个指令,那么最好将整个
li
元素替换为如下内容:
,其中您的指令只使用
filter
ngClick
,就像我上面所做的那样。

假设我正确理解您的意思,这样使用可能更好:


挑选出来的
  • {{{item.name}
未选择
  • {{{item.name}
如果您需要将功能作为一个指令,那么最好将整个
li
元素替换为如下内容:
,其中您的指令只使用
过滤器
ngClick
,就像我上面所做的那样

<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>