AngularJS在隔离范围内单击会在外部范围内调用函数

法比奥·吉布森(Fabio Gibson)

我正在使用angular.ui tabset指令。我知道它使用transclude并具有隔离范围,但是我不理解以下行为:

如果我在指令内部设置了ng-model,则angular将其绑定到指令范围。这就是我所期望的,但是如果使用ng-click(在指令内部)进行调用,则会调用外部作用域函数。

有人可以帮我理解吗?

<html data-ng-app="test">
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js"></script>
    <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.11.2.js"></script>
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>

<div data-ng-controller="Ctrl">
 Outter scope id: {{ $id }}

  <tabset>
    <tab heading="Tab 1">
        <p>Inner scope id: {{ $id }}</p>

        <input type="text" data-ng-model="name" />
        <p>This model is bound on inner scope: {{ name }}</p>

        <p>
          <button data-ng-click="foo()">Invoke Foo</button>
          This button is inside inner scope but invokes foo() on outter scope.
        </p>
    </tab>
  </tabset>

</div>
</body>
</html>

和javascript代码:

angular.module('test', ['ui.bootstrap']).controller('Ctrl', function ($scope) {
    $scope.name = "Test";

    $scope.foo = function() {
      alert($scope.$id + ' - ' + $scope.name);
    }
});

谢谢。

除夕

之所以可行,是因为您的子范围继承自父范围。

请在此处查看更多信息https://github.com/angular/angular.js/wiki/Understanding-Scopes

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS单击函数集,范围内重复

来自分类Dev

$ scope。$ on在隔离范围内

来自分类Dev

$ scope。$ on在隔离范围内

来自分类Dev

AngularJS ng-click不调用范围内的函数

来自分类Dev

AngularJS ng-click不调用范围内的函数

来自分类Dev

范围内的范围。AngularJS

来自分类Dev

范围内的范围。AngularJS

来自分类Dev

在全局范围内调用静态方法

来自分类Dev

重写onDataChange函数时如何在外部范围内进行更改

来自分类Dev

如何在AngularJS隔离范围内进行双向绑定?

来自分类Dev

如何在AngularJS隔离范围内进行双向绑定?

来自分类Dev

在隔离范围内声明复杂对象

来自分类Dev

隔离范围内的表格是否清晰?

来自分类Dev

yii addBetweenCondition在范围与外部范围内

来自分类Dev

在范围内过滤AngularJS

来自分类Dev

AngularJS等待用户单击范围内的$ resource Promise

来自分类Dev

测试是否在Scala中的给定范围内调用了函数

来自分类Dev

在C ++标准的哪里可以找到在全局范围内调用函数的支持?

来自分类Dev

jQuery-如何在另一个范围内调用函数

来自分类Dev

使用Expression在范围内调用函数不会返回任何内容

来自分类Dev

更改范围内所有调用的函数默认参数

来自分类Dev

C指向函数调用的指针不在范围内

来自分类Dev

cpp函数调用中的“不在此范围内”错误

来自分类Dev

jquery函数范围内的类上的TypeScript调用方法

来自分类Dev

系统范围内监视对库函数的调用

来自分类Dev

在全局范围内调用Object.prototype方法

来自分类Dev

从范围内调用element.replaceWith。$ on抛出TypeError

来自分类Dev

如何在事务范围内调用服务总线 azure

来自分类Dev

如何使用Node.js在外部范围内定义回调函数?

Related 相关文章

热门标签

归档