gpt4 book ai didi

angularjs - Angular ui-router templateProvider 从未调用过

转载 作者:行者123 更新时间:2023-12-01 00:56:40 24 4
gpt4 key购买 nike

我需要将路由参数传递给使用模板响应的服务器,因此我尝试使用 templateProvider根据几篇文章/其他堆栈溢出文档。

我没有收到任何 javascript 错误,但出现以下 templateProvider方法甚至永远不会被执行。当templateUrl属性没有被注释掉,这条路线工作正常。

$stateProvider
.state('org.contacts.add', {
url: '/add',
views: {
'org@': {
// templateUrl: '/templates/issues/add',
controller: 'ContactsAddController',
templateProvider: function($route, $templateCache, $http) {
var url = '/templates/' + $route.current.params.org + '/contacts/add';
$http.get(url, {cache: $templateCache}).then(function(html){
return html;
});
}]
}
}
})

经过一些实验,似乎 $route造成了麻烦。取出并使用 $stateParams至少触发此代码/ Controller 。

但是,虽然我看到 ajax 调用触发和正确的 html 响应,但它从未加载到 View 中。
    templateProvider: function ($stateParams, $http, $templateCache) {
var url = '/templates/contacts/add';
$http.get(url, {cache: $templateCache}).then(function(html){
return html;
});
}

最佳答案

我猜你需要返回一个 $promise为了这个工作。查看 UI-Router wiki 上使用的示例:

$stateProvider.state('contacts', {
templateProvider: function ($timeout, $stateParams) {
return $timeout(function () {
return '<h1>' + $stateParams.contactId + '</h1>'
}, 100);
}
})

注意以 return $timeout(... 开头的行.您是否尝试过返回 $promise这是通过做 $http.get() 创建的?

关于angularjs - Angular ui-router templateProvider 从未调用过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27345020/

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