是否有可能排队ng-init?通常,在第一个初始化中,我希望将JSON文件添加到prototype vars (数组)中,在另一个初始化中,根据参数的不同,我想跳过getJsonData()或将其他JSON文件添加到原型中。
function init(param) {
console.log("startInit");
// big JSON file
var promise = getJSON(param);
return promise.then( function() {
//some func
console.log("finish");
return true;
});
};
function getJSON(param) {
var deferred = $q.defer();
console.log("startInitDataInner");
someService.getJsonData(param).then(function(data) {
// some code
console.log("endInitDataInner");
deferred.resolve();
}, function(error) {
deferred.reject();
});
return deferred.promise;
}; 在视图ng-init中
ng-init="init(param)"
ng-init="init(param)"
// ...和日志:
startInit
startInitDataInner
startInit
startInitDataInner
endInitDataInner
finish
endInitDataInner
finish
//..编辑:
一般来说,我想在jQuery中创建类似插件的东西。我有这样的代码:
<div ng-controller="parentController as parent">
<div ng-controller="childController as child" ng-init="child.init(parent.data)"></div>
</div>
<div ng-controller="parentController as parent">
<div ng-controller="childController as child" ng-init="child.init(parent.data2)"></div>
</div>和可由用户配置的部件:
angular.module('myApp').controller('parentController', ['$scope', function($scope) {
this.data = {
config: {
lang: "en",
title: "title"
}
};
this.data2 = {
config: {
lang: "pl",
title: "title2"
}
};
}]);ng-init更新接口:
angular.extend(this, parent.data);你知道我该怎么做吗?
发布于 2016-01-04 06:26:55
如果你使用的是angular,你可以使用控制器。控制器itslfmin的一般含义是什么?对,它是一个构造函数。这里的主词是函数。一般的功能是什么?运行里面的代码。
所以,只要把你的初始逻辑放在控制器代码的地方(但不把它包装成一个单独的函数),它就会及时运行,你的控制器将被角度解析器解析。
var controller = function () {
// vars, costs, etc.
console.log("startInit");
// big JSON file
var promise = getJSON(param);
return promise.then( function() {
//some func
console.log("finish");
return true;
});
};https://stackoverflow.com/questions/34581958
复制相似问题