gpt4 book ai didi

javascript - 指令未正确初始化

转载 作者:行者123 更新时间:2023-12-03 07:04:55 26 4
gpt4 key购买 nike

我使用 angular-ui-bootsrap tabs 指令来创建选项卡。但是当我在每个 Controller 和链接函数上console.log时,初始化顺序不正确。

我期待

outer - controller
Inner - Controller
Inner - Link
Inner - Controller
Inner - Link
Inner - Controller
Inner - Link
Inner - Controller
Inner - Link
outer - Link

结果

outer - controller
outer - Link
Inner - Controller
Inner - Link
Inner - Controller
Inner - Link
Inner - Controller
Inner - Link
Inner - Controller
Inner - Link

正如您所看到的,外部指令同时初始化了与 Controller 的链接,而不是在内部指令初始化后才链接。

转到plunker并检查控制台。

最佳答案

将您的链接函数放入 $timeout 服务中。请参阅plunker

// UPD: Add $timeout service
.directive('uibTabset', function($timeout) {
return {
transclude: true,
replace: true,
scope: {},
bindToController: {
active: '=?',
type: '@'
},
controller: 'UibTabsetController',
controllerAs: 'tabset',
templateUrl: function(element, attrs) {
return attrs.templateUrl || 'uib/template/tabs/tabset.html';
},
link: function(scope, element, attrs) {
// UPD: put link-function in $timeout
$timeout(function() {
console.log("outer - Link");

scope.vertical = angular.isDefined(attrs.vertical) ?
scope.$parent.$eval(attrs.vertical) : false;
scope.justified = angular.isDefined(attrs.justified) ?
scope.$parent.$eval(attrs.justified) : false;
if (angular.isUndefined(attrs.active)) {
scope.active = 0;
}
});
// END UPD
}
};
})

关于javascript - 指令未正确初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36867396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com