Angularjs:scope.data在指令中未定义
首先,我从这个主题中找到了api地址: 现在我正在做这个,我的小剧本是这样的:Angularjs:scope.data在指令中未定义,angularjs,Angularjs,首先,我从这个主题中找到了api地址: 现在我正在做这个,我的小剧本是这样的: var app = angular.module('kategori', [ 'ngResource', 'apiBaseRoute' ]); app.factory('Data', ['$resource', 'apiBaseRoute', function($resource, config){ return $resource('http://
var app = angular.module('kategori', [
'ngResource',
'apiBaseRoute'
]);
app.factory('Data', ['$resource', 'apiBaseRoute', function($resource, config){
return $resource('http://develop.alexei.me/careers/careers.php?callback=JSON_CALLBACK&page=:page', {
page: 1
}, {
'get': {
method: 'JSONP'
}
});
}]);
app.controller('KategoriListCtrl', function($scope, Data){
$scope.init = function() {
Data.get({}, function(response){
$scope.kategoriList = response.careers;
},function(error){
console.log("HATA VAR" + error);
});
};
});
app.directive('paginate', function(){
return{
scope:{ allData: '=paginate2' },
link: function(scope){
console.log(scope);
}
}
});
这是html方面:
<div class="col-md-6 col-md-offset-3" ng-controller="KategoriListCtrl" ng-init="init()">
{{kategoriList}}
<div paginate paginate2="kategoriList"></div>
</div>
它打印未定义的
我不明白为什么。我怎样才能解决这个问题?谢谢。当JS到达您的
控制台。log
时,allData
属性未定义(因为kategoriList
未定义)kategoriList
(因此,allData
)将在稍后异步创建(并填充大量数据)
那么,为什么在记录scope
对象时会看到数据呢
在记录对象时,它没有属性所有数据(也没有数据)。
但是当您转到控制台并展开节点并查找allData
属性时,该属性已经由AJAX调用添加和填充(使用$resource
)
不清楚您想用所有数据做什么
如果您想在例如ng repeat
中使用它,您不必担心:您可以正常使用它(就像定义了它一样),Angular将在它到达后自动“拾取”并执行操作。
然而,如果你想(出于你自己的神秘原因)在它准备好时得到通知,你可以使用:
scope.$watch('allData', function(newValue) {
if (newValue !== undefined) {
console.log(scope.allData);
}
});
另外,请参阅此谢谢您的回答,我正在尝试使用分页系统,我将使用当前页面,等等。。内部指令。我看到的数据通常没有指令,如你所说的ng repeat,但我无法将数据传输到指令中。好的。但这并没有说明您计划如何使用allData
。如果您遇到任何问题,请发布相关代码。顺便说一句,如果这篇文章回答了你的问题,请将其标记为“已接受”。我会创建两个变量,其中一个变量只包含页面中显示的数据。其他将包含来自laravel的分页数据。对于分页数据(页面、当前页面、最后一页、总页面等),allData是可变的。您不应该遇到任何困难。不过,如果遇到问题,请发布一个新问题,提供相关代码。
scope.$watch('allData', function(newValue) {
if (newValue !== undefined) {
console.log(scope.allData);
}
});