AngularJS,UI Bootstrap DropDown Toggle,如果绑定了参数,则不会触发ng-click

时间:2013-09-10 06:38:34

标签: javascript twitter-bootstrap angularjs

最困难的问题,我不知道它在哪里。 (以下所有变量名称都是为了保护有罪者而被亵渎)

如果我在使用绑定属性的ui bootstrap dropdown toggle内的ng重复项目上进行了ng-click,则不会触发ng-click。

这里我试图将项Code属性传递给函数。

<div class="btn-group">
    <a class="btn btn-inverse dropdown-toggle" >Copy to <span class="caret"></span></a>
    <ul class="dropdown-menu">
        <li ng-repeat="jigger in Thingies">
            <a ng-click="cloneItemTo('{{jigger.Code}}');">{{jigger.Name}}</a>
        </li>
    </ul>
</div>

但是,如果我有一个使用硬编码值的ng-click,则会触发ng-click。在这里,我用'xxx'代替我想要使用的Code属性的地方。

<div class="btn-group">
    <a class="btn btn-inverse dropdown-toggle" >Copy to <span class="caret"></span></a>
    <ul class="dropdown-menu">
        <li ng-repeat="jigger in Thingies">
            <a ng-click="cloneItemTo('xxx');">{{jigger.Name}}</a>
        </li>
    </ul>
</div>

这是控制器的有趣位

$scope.Thingies = [
   {"ID": 1,"Code": "itemone",    "Name": "Item One"}
  ,{"ID": 2,"Code": "itemtwo",    "Name": "Item Two"}
  ,{"ID": 3,"Code": "itemthree",  "Name": "Item Three"}
  ,{"ID": 5,"Code": "whereisfour","Name": "Item Five"}
];

$scope.cloningto = 'nowhere';

$scope.cloneItemTo = function(newType) {
    $scope.cloningto = newType;
}

我已经把所有东西都剥夺了骨头并创建了Plunkr,问题仍然存在。

任何人都知道我做错了什么,或者有什么变通方法吗?

2 个答案:

答案 0 :(得分:3)

更改行:

<a ng-click="cloneItemTo('{{jigger.Code}}');">{{jigger.Name}}</a>

为:

<a ng-click="cloneItemTo(jigger.Code);">{{jigger.Name}}</a></li>

希望它会有所帮助,

答案 1 :(得分:2)

将此cloneItemTo('{{jigger.Code}}');替换为您在Plunkr中为我工作的cloneItemTo(jigger.Code);