通过ng-click函数传递的对象失去引用
Object passed through ng-click function loses reference
将对象传递给ng-click
函数时,该对象似乎失去了其引用。原因是什么?
CodePen例子
<div ng-app="app" ng-controller="controller">
<p>
<u>Object</u> : {{ obj | json }}
</p>
<p>
<button ng-click="obj = {}">obj = {}</button> <!-- works -->
<button ng-click="voidIt(obj)">voidIt(obj)</button> <!-- doesn't work -->
</p>
<p>
<button ng-click="reset()">Reset obj</button>
</p>
</div>
angular.module('app', []).controller('controller',
function($scope) {
$scope.voidIt = function(object) {
object = {}
}
$scope.reset = function() {
$scope.obj = { prop: "value" }
}
$scope.reset();
});
嵌套的$scope
所指的内容可能会令人困惑,因此使用controllerAs
语法要好得多。要了解更好的解释,请阅读AngularJS的"控制器"vs。"美元范围"。
codependency with ControllerAs reference .
但是如果你在寻找一个清楚的理由为什么它不起作用,我也迷路了。我只是觉得最好还是走安全的路,避免这样的陷阱。
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- 在方法中失去对对象的引用
- JavaScript对象在函数之间失去引用
- JavaScript克隆的对象失去了它的原型函数
- 为什么javascript方法在与setTimeout一起使用时会失去与对象的连接
- 为什么JavaScript中的子对象会失去全局作用域
- 缓存对象失去了它的值后,页面离开,我试图回来
- 将JavaScript函数传递给对象内的另一个函数会失去对象变量作用域
- 通过ng-click函数传递的对象失去引用
- 剑道对象失去了功能和风格
- 水线MongoDb(填充)获取对象失去了它的类型和原型函数
- 为什么,克隆数组中的对象在传递给方法时似乎失去了它们的引用?
- 为什么“这个”失去了与我的对象的联系