首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AngularJS:在单击时复制指令,但不在元素之间共享相同的数据

AngularJS:在单击时复制指令,但不在元素之间共享相同的数据
EN

Stack Overflow用户
提问于 2015-05-26 23:19:11
回答 1查看 576关注 0票数 2

我正在尝试建立一个搜索引擎选择指令,其中有2个下拉列表(一个用于搜索引擎,一个用于国家)

然而,我已经设法让它工作,但我希望能够添加另一个搜索引擎后,第一个已被选中,但也限制他们最多3个搜索引擎。

这就是我被卡住的地方,因为复制指令显然会使所有3个搜索引擎的选择都相同。

HTML中,该指令如下所示:

代码语言:javascript
运行
复制
<wiz-engine-selector>
    <wiz-engine selected-engine="knc.selectedEngine"></wiz-engine>
    <wiz-country selected-country="knc.selectedCountry"></wiz-country>
</wiz-engine-selector>

你知道如何在不共享相同数据的情况下复制指令吗?

这是一个演示plunker

EN

回答 1

Stack Overflow用户

发布于 2015-05-26 23:48:16

我在您的指令中使用ng-repeat解决了您的问题。

下面是一个有效的plunker

HTML

代码语言:javascript
运行
复制
    <wiz-engine-selector ng-repeat="engineSelector in engineSelectors">
        <wiz-engine selected-engine="engineSelector.selectedEngine"></wiz-engine>
        <wiz-country selected-country="engineSelector.selectedCountry"></wiz-country>
    </wiz-engine-selector>

控制器

代码语言:javascript
运行
复制
app.controller('MainCtrl', function($scope) {

  //Each engineSelector will have its own set of variables into the engineSelectors array.
  $scope.engineSelectors = [{
    selectedEngine : { icon:{}, name:{} },
    selectedCountry : { flag:{}, name:{} } 
  }];
  $scope.addAnother = function(){
     $scope.engineSelectors.push({
        selectedEngine : { icon:{}, name:{} },
        selectedCountry : { flag:{}, name:{} } 
     });
  };
})

如果您想限制三个搜索引擎,只需在"addAnother“函数中添加一个限制

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30462600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档