6

私は AngularJS を初めて使用し、ng-repeat によって生成されたラジオ ボタンに ng-click を配置しましたが、クリック イベントが発生しません。単純なオンクリックを使用すると、それは機能します。

これは機能し、アラートが表示されます。

<div class="span2 left-justify"
        ng-repeat="choice in physicalmode_choices">
    <input type="radio"
            name="physical_layer"
            value="{{ choice.private }}"
            onclick="alert('foo')"
            required
            ng-model="$parent.networkoptions.physicalmode" />
            &nbsp;<span ng-bind="choice.public"></span>
</div>

しかし、これはしません:

<div class="span2 left-justify"
        ng-repeat="choice in physicalmode_choices">
    <input type="radio"
            name="physical_layer"
            value="{{ choice.private }}"
            ng-click="alert('foo')"
            required
            ng-model="$parent.networkoptions.physicalmode" />
            &nbsp;<span ng-bind="choice.public"></span>
</div>

ng-clickでこれを行うことはできませんか? それとも、「表現」とは何かを誤解していますか?

ありがとう、マイク

4

3 に答える 3

20

DerekRの答えを明確にするために。

アンギュラーが見るとき

ng-click='alert("test")'

それは探します

$scope.alert

これは未定義の可能性があります。

スコープ、または場合によってはルートスコープでプロキシ メソッドを提供する必要があります。

例えば:

$rootScope.log = function(variable) {
    console.log(variable);
};
$rootScope.alert = function(text) {
    alert(text);
};

参照: http://deansofer.com/posts/view/14/AngularJs-Tips-and-Tricks-UPDATED#scopemethods

于 2014-02-24T00:53:30.440 に答える
2

ng-click 内で何かを呼び出すと、解析サービスは、グローバル ウィンドウ オブジェクトではなく、スコープに対して式を評価します。

ng-click 内でアラートを実行したい場合は、スコープまたは親スコープにメソッドを記述して、アラートを呼び出すことができます。

于 2013-05-25T01:15:10.030 に答える