我有此指令,每当执行Exception in thread "main" java.lang.NoSuchMethodError:
org.json.JSONObject.entrySet()Ljava/util/Set;
at org.json.XML.toString(XML.java:502)
at org.json.XML.toString(XML.java:471)
at com.testing.main(testing.java:13)
时,出于某种原因,当我使用ng-repeat
时,它总是返回console.log
中的最后一个数据。
ng-repeat
这是ng-repeat的代码。(使用json管道时的数据正确。)
(function () {
'use strict';
angular
.module('app.schoolAdmin')
.directive('barGraph', barGraph);
barGraph.$inject = ['$timeout'];
function barGraph ($timeout) {
var scope;
var element;
return {
link: link,
restrict: 'EA',
scope: {
data: '=',
onClick: '&',
methods: '='
}
};
function init () {
console.log("DATA", scope.data);
}
function link (_scope, _element) {
scope = _scope;
element = _element;
$timeout(function () {
init();
}, 0);
}
}
})();
答案 0 :(得分:2)
$timeout(function () {
init();
}, 0);
您上面的timeout
引起了问题。
将其删除以解决此问题。
如果要保留$timeout
,可以将_scope
传递给init方法,如下所示:
function init (data) {
console.log("DATA", scope.data);
console.log("REAL DATA", data);
}
function link (_scope, _element, attrs) {
scope = _scope;
element = _element;
$timeout(function () {
init(_scope.data);
}, 0);
}
这是一个示例jsfiddle