Javascript 通过AngularJS中的ngClick将整个对象或只是属性从视图传递给控制器?

Javascript 通过AngularJS中的ngClick将整个对象或只是属性从视图传递给控制器?,javascript,angularjs,Javascript,Angularjs,在AngularJS中,我们应该将整个对象或只是所需的属性从视图传递给控制器吗 例如: 查看 <div ng-repeat="house in town"> <div ng-click="listHome( house.id )"></div> </div> 假设控制器功能只需要house的id,而不需要整个对象 性能是否建议通过house.id,或者通过整个house对象,然后在控制器端拆分id。将对象传递给函数基本上是自由的 如果您只

在AngularJS中,我们应该将整个对象或只是所需的属性从视图传递给控制器吗

例如:

查看

<div ng-repeat="house in town">
    <div ng-click="listHome( house.id )"></div>
</div>
假设控制器功能只需要
house
id
,而不需要整个对象


性能是否建议通过
house.id
,或者通过整个
house
对象,然后在控制器端拆分
id
。将对象传递给函数基本上是自由的


如果您只需要
id
,则只需传递
id
。不是出于性能原因,而是出于清晰性原因。通常,只向函数传递您真正需要的参数是一种很好的做法。

两种方法都不会对性能产生任何影响

我只想说,第一种情况是通过值传递的
示例,第二种情况可以被视为通过引用传递的

让我们理解我说的话 当您只是将特定属性传递给方法(如
ng click=“listHome(house.id)”
并在方法内部修改该
houseid
时,这不会更改实际的对象引用,因为您刚刚传递了值

然而,如果您像传递
ng click=“listHome(house)”
一样传递
house
对象本身,那么您修改了任何对象属性,这样将更改传递给该方法的引用的实际对象


这取决于你,你应该遵循哪种方法。如果你只是想通过
house
id
&做些别的事情,那就去第一个方法

如果您想通过验证代码中的某些内容来更改对象的当前引用,请使用第二种方法

$scope.listHome = function (id) {
    // do something with id
}