加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS:ng-init的范围

发布时间:2020-12-17 07:38:58 所属栏目:安全 来源:网络整理
导读:Angular中的ng-init的范围是什么?以下是一个简单的例子来说明我的问题: div ng-init="model = { year: '2013'}" a href="" ng-click="model.year = '2012'"2012/a | a href="" ng-click="model.year = '2013'"2013/a divShowing {{ model.year }}/div hr /
Angular中的ng-init的范围是什么?以下是一个简单的例子来说明我的问题:
<div ng-init="model = { year: '2013'}">
      <a href="" ng-click="model.year = '2012'">2012</a> | <a href="" ng-click="model.year = '2013'">2013</a>
      <div>Showing {{ model.year }}</div>
      <hr />
    </div>
    <div ng-init="model = { year: '2013'}">
      <a href="" ng-click="model.year = '2012'">2012</a> | <a href="" ng-click="model.year = '2013'">2013</a>
      <div>Showing {{ model.year }}</div>
    </div>

现场示例:http://plnkr.co/edit/HkioewOzzglvFMKDPdIf?p=preview

似乎ng-init范围在2 div [ng-init]之间共享.例如,如果您点击年份“2012”,它会更改两个部分.有没有办法告诉角度为每个ng-init创建一个新的范围,从而点击“2012”年只会影响它所属的部分?

ng-init不会创建一个新的作用域,它会计算当前作用域中的一个表达式.在您的示例中,您的ng-init都在相同的范围内,更改相同的模型属性将影响另一个.如果您需要单独的范围,您可以尝试ng控制器.
<div ng-controller="MainCtrl" ng-init="model = { year: '2013'}">
      <a href="" ng-click="model.year = '2012'">2012</a> |  <a href="" ng-click="model.year = '2013'">2013</a>
      <div>Showing {{ model.year }}</div>
      <hr />
    </div>
<div ng-controller="MainCtrl" ng-init="model = { year: '2013'}">
      <a href="" ng-click="model.year = '2012'">2012</a> |  <a href="" ng-click="model.year = '2013'">2013</a>
      <div>Showing {{ model.year }}</div>
 </div>

DEMO

旁注:在这种情况下,您不需要ngInit,只需直接在控制器中初始化该值.

The only appropriate use of ngInit is for aliasing special properties
of ngRepeat. Besides this case,you should use controllers rather than
ngInit to initialize values on a scope.

https://docs.angularjs.org/api/ng/directive/ngInit

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读