gpt4 book ai didi

javascript - AngularJS 意外共享作用域

转载 作者:行者123 更新时间:2023-11-30 10:25:58 25 4
gpt4 key购买 nike

我在 AngularJS 中遇到问题,我的父 Controller 和子 Controller 共享同一个模型。在这个例子中,有递归注释:

<div ng-controller="ParentController">
<label>Comment</label>
<textarea name="comment_text" ng-model="comment_text"></textarea>
<input type="submit" value="Leave Comment" ng-click="sendComment($event)" />
<div class="replies">
<div class="areply" ng-controller="ChildController">
Someone said: blah blah blah
<label>Reply</label>
<textarea name="comment_text" ng-model="comment_text"></textarea>
<input type="submit" value="Leave Comment" ng-click="sendComment($event)" />
</div>
</div>

</div>

第一个问题....我做错了吗?我的第二个问题是有没有一种方法可以确保使用 ng-model 的父作用域和子作用域不会相互影响?

最佳答案

子 Controller 范围是其父 Controller 范围的原型(prototype)后代。这是 Angular 的一个有意特性。子作用域可以访问父作用域的状态,但反之则不行。

如果您不想要这种行为,有几个选项 - 要么不使用嵌套 Controller (您可以使用自定义服务在需要的地方共享数据,这对测试更友好,因此被认为是最佳实践) ,或者更简单地说,只是将父范围字段和子范围字段称为不同的名称。

关于javascript - AngularJS 意外共享作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19551355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com