当ng-click位于父元素

时间:2016-01-06 14:51:05

标签: angularjs angularjs-ng-click

真的很快问题。我注意到,当我在选择元素上方进行ng-click时,单击选择列表不会更改该值。

HTML:

<div ng-controller="MyController" ng-app>
  <div ng-click="test()">
    <select size="1" ng-model="selectedCountry" ng-options="c.name for c in countries"></select>
    {{selectedCountry}}
  </div>
</div>

http://jsfiddle.net/ky5F4/131/

有人可以解释为什么会发生这种情况,是否有办法防止这种情况发生?我希望在父级触发上有一个click事件以及选择的ng-model绑定数据。感谢

2 个答案:

答案 0 :(得分:1)

如果您将ng-click="$event.stopPropagation()"添加到您的选择中,则会有效。

  

event.stopPropagation()方法停止将事件冒泡到父元素,从而阻止执行任何父事件处理程序。

答案 1 :(得分:0)

<div ng-controller="MyController" ng-app>

    <select size="1" ng-model="selectedCountry" ng-options="c.name for c in countries" ng-change="changed()"></select>
    {{selectedCountry}}

</div>

控制器

 $scope.changed = function()
    {

        if($scope.modelname == "Whatever Your Parent Element is")
    {
        //whatever you want to do
    }
    }