gpt4 book ai didi

javascript - AngularJS。使用不同的数据初始化 Controller

转载 作者:行者123 更新时间:2023-12-02 17:11:04 25 4
gpt4 key购买 nike

我在我的 Angular 应用程序中使用 $routeProvider 进行路由。对于 2 条路线,我使用相同的 HTML 模板和相同的 Controller 。

        when('/products, {
templateUrl: 'views/products.html',
controller: 'ProductListCtrl'
}).
when('/myProducts', {
templateUrl: 'views/products.html',
controller: 'ProductListCtrl'
}).

只有我想显示的数据存在差异。 IE。对于路径 products 我想要 AJAX 请求到 myserver:8080/products ,对于路径 myProducts 我想要从 AJAX 请求加载数据到 myserver:8080/products/my.

现在我使用 $location 服务来区分当前页面(productsmyProducts)并加载适当的数据。

有没有更优雅的方法来做到这一点?例如使用 $routeProviderresolve 方法?

最佳答案

在今天的场景中重用 Controller 名称的最佳方法是将resolve与$routeparams一起使用。

您可以修改您的代码如下

 when('/products, {
templateUrl: 'views/products.html',
controller: 'ProductListCtrl',
resolve: {
product: function($http) {
return $http.get('/products')
},
needToShowFilter:function($q){
var showfilter = $q.defer();
showfilter.resolve(false);
return showfilter.promise
}
}
}).
when('/myProducts', {
templateUrl: 'views/products.html',
controller: 'ProductListCtrl',
resolve: {
product: function($http) {
return $http.get('/products/my')
},
needToShowFilter:function($q){
var showfilter = $q.defer();
showfilter.resolve(true);
return showfilter.promise
}
}
}).

然后在 Controller 中,您可以将产品注入(inject) Controller 代码中。

关于javascript - AngularJS。使用不同的数据初始化 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24822693/

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