angularJS - 指令无法获取数组值的“索引”
angularJS - directive not able to get `index` of array value
我将数组传递给 directive
并在指令方法中获取它。但我正在尝试获得 index
的价值。但得到 undefiend
。这里有什么问题?
数组创建:
var dataSize = gridView.baseData.length / viewPorts;
for( var i = 0; i < dataSize; i++ ){
gridView.pages[i] = {
show : i ==0 ? true:false,
pageData : gridView.baseData.splice( 0, viewPorts )
};
}
return gridView.pages;
这是我的指令:
var dataGridMaker = function( ) {
return {
scope: {
"pages" : "="
},
replace: true,
template : GridTemplate.join(''),
link: function( scope, element, attrs ) {
console.log( scope.pages ); //getting all array values
console.log( scope.pages[0] ); //undefined-why?
}
}
}
这里是控制台:
[]0: Object 1: Object 2: Object 3: Object 4: Object 5: Object 6: Object 7: Object 8: Object 9: Objectlength: 10__proto__: Array(0)
dataGridDirective.js:24 undefined
这可能是未解决的承诺或范围更改(取决于您在控制器中所做的事情)。尝试立即将 console.log( scope.pages[0] );
包装在超时中,看看会发生什么。像这样:
$timeout(function () {
console.log( scope.pages[0] );
});
我将数组传递给 directive
并在指令方法中获取它。但我正在尝试获得 index
的价值。但得到 undefiend
。这里有什么问题?
数组创建:
var dataSize = gridView.baseData.length / viewPorts;
for( var i = 0; i < dataSize; i++ ){
gridView.pages[i] = {
show : i ==0 ? true:false,
pageData : gridView.baseData.splice( 0, viewPorts )
};
}
return gridView.pages;
这是我的指令:
var dataGridMaker = function( ) {
return {
scope: {
"pages" : "="
},
replace: true,
template : GridTemplate.join(''),
link: function( scope, element, attrs ) {
console.log( scope.pages ); //getting all array values
console.log( scope.pages[0] ); //undefined-why?
}
}
}
这里是控制台:
[]0: Object 1: Object 2: Object 3: Object 4: Object 5: Object 6: Object 7: Object 8: Object 9: Objectlength: 10__proto__: Array(0)
dataGridDirective.js:24 undefined
这可能是未解决的承诺或范围更改(取决于您在控制器中所做的事情)。尝试立即将 console.log( scope.pages[0] );
包装在超时中,看看会发生什么。像这样:
$timeout(function () {
console.log( scope.pages[0] );
});