Ras*_*mus 8 javascript angularjs
枚举对象上的Angular特定属性$$hashKey可用于很多事情.
例如DOM定位;
<div ng-repeat="obj in objects">
<label for="field-{{obj.$$hashKey}}">
Label
</label>
<input type="text" id="field-{{obj.$$hashKey}}" />
</div>
Run Code Online (Sandbox Code Playgroud)
在一些奇怪的情况下,我现在体验到了$ hashKey prop尚未设置在我想要访问它的对象上,即使它正在与Angular重复.有没有办法在初始化对象时自己设置此属性?
编辑:我的猜测是存在某种形式的执行顺序问题,当Angular尚未处理重复时我会访问该属性.我正在深深地观察一个物体,在那个物体内是一个带有物体的数组,它正在重复.它也是我需要访问该$$hashKey属性的其中一个对象.
简单的例子;
var MyController = function($scope, Obj)
{
$scope.obj = {
list: [obj, obj, obj, obj]
};
$scope.$watch("obj", function()
{
var lastObj = $scope.obj.list[$scope.obj.list.length - 1];
console.log(lastObj.$$hashKey); // Undefined?
}, true);
$scope.addObj = function()
{
$scope.obj.list.push(new Obj());
};
};
Run Code Online (Sandbox Code Playgroud)
Edit2:jsFiddle http://jsfiddle.net/2sbWp/2/
在$ hashKey属性可用之前,使用$ timeout且没有延迟值延迟:
$timeout(function(){console.log(lastObj.$$hashKey)});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16770 次 |
| 最近记录: |