3

最も厄介な問題であり、どこにあるのかわかりません。(有罪を保護するために、以下のすべての変数名は無害化されています)

バインドされたプロパティを使用するui ブートストラップ ドロップダウン トグル内の ng-repeated アイテムに 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 が起動します。ここでは、アイテムの Code プロパティを使用したい場所に「xxx」をハードコーディングしています。

<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を作成しましたが、問題は解決しません。

私が間違っていること、または回避策を知っている人はいますか?

4

2 に答える 2

3

行を変更:

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

に:

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

それが役立つことを願って、

于 2013-09-10T06:47:51.537 に答える
2

cloneItemTo('{{jigger.Code}}');これをこれに置き換えcloneItemTo(jigger.Code);てください。Plunkrでうまくいきました

于 2013-09-10T06:51:52.767 に答える