内容简介:http://stackoverflow.com/questions/38814175/is-it-possible-to-pass-param-from-state-to-state-with-angularjs
我希望通过一个商店状态的参数到产品状态的显示产品信息:
我的应用 – storeApp
.config(['$stateProvider', function($stateProvider) {
$stateProvider
.state('store', {
url: '/store',
templateUrl: 'store/store',
controller: 'storeCtrl'
})
.state('products', {
url: '/products/:productSku',
templateUrl: 'store/product',
controller: 'productCtrl',
resolve: {
productResource: 'productFactory',
_product: function(productResource, $stateParams){
return productResource.getProduct($stateParams.productSku);
}
}
Store.jade
a(href='/products/{{product.sku}}')
产品控制器
.controller("productCtrl", function ($rootScope, $http, $stateParams, productFactory, storeFactory) {
//.controller('productCtrl', ['_product', function ($scope, $rootScope, storeFactory, _product) {
console.log($stateParams.productSku);
产品厂
function getProduct(sku) {
return $http.get('http://localhost:3000/api/products/' + sku );
}
由于我正在使用MEAN Stack,所以节点有路由器表示:
Server.js
const storeController = require('./controllers/store');
server.get('/store/product', passportConfig.isAuthenticated, storeController.getProductPage);
Store.js
exports.getProductPage = (req, res) => {
res.render('store/product', {
title: 'PP',
angularApp: 'storeApp'
})
}
我尝试返回_product,但是我收到了未知的提供者:_productProvider<- _product<- productCtrl 我尝试在store.jade中使用ui-sref – a(ui-sref =“products({productSku:'{{product.sku}}’})”)将param从store_State发送到products_State&终于从API得到了一个对象. 现在的问题是节点不会返回视图. 基本上我想要实现的是:
节点服务客户端视图,所有商店视图 – 商店/产品/购物车附加到通过Server.js提供的角度应用程序,点击商店产品将从api解析产品信息后重定向到产品页面.
我得到产品信息,但没有获得产品视图.
我看了看,但所有的解决方案都没有工作….也许我的坏:-(
我该怎么办?
更新1:这是发生了什么:
更新2:
当我将控件传递给角度时,我有快速路由菜单,并且角状态提供路由/连接视图到控制器.
主要观点是负载是商店本身:
app.js – 商店路线
$stateProvider
.state('store', {
url: '/store',
templateUrl: 'store/store',
controller: 'storeCtrl'
})
server.js(express)
server.get('/store', passportConfig.isAuthenticated, storeController.getStorePage);
store.js
exports.getStorePage = (req, res) => {
res.render('store/store', {
title: 'S--tore',
angularApp: 'storeApp'
});
}
store.ctr.js
angular.module("storeApp")
.controller("storeCtrl", function($rootScope, $http, storeFactory) {
var products;
storeFactory.getProducts().then(function(_products) {
products = _products.data;
$rootScope.products = products;
});
那加载很好!
但是当我尝试将param productSku从商店视图发送到产品视图,并将解决方案发送到产品视图,停止工作时,它是我得到的视图,或者我得到参数.
我尝试了不同的解决方法,它们都是相同的 – 查看OR产品参数.
app.js – 产品路线
.state('products', {
url: '/products/:productSku',
templateUrl: 'store/product',
controller: 'productCtrl',
resolve: {
_product: function ($stateParams, $state, $http) {
return $http.get('http://localhost:3000/api/products/' + $stateParams.productSku );
//return productResource.getProduct($stateParams.productSku)
}
}
})
如果我从store.jade中删除解决方案并发送一个(href =’/ products / {{product.sku}}’),我得到路由中的模板,我得到的chrome控制台错误是“错误:$inject:unpr未知Provider _product<- productCtrl product.ctr.js
.controller('productCtrl', ['_product', function ($rootScope, $http, $stateParams, productFactory, storeFactory, _product) {
如果我发送(ui-sref =“products({productSku:product.sku})”),我将得到产品参数(在上面的WebStorem快照中显示)NO视图.
角度不会加载玉模板,您将需要一个html模板,玉模板由快递加载.你可能想尝试使用ui-view这样:
Store.jade
div(ui-view)
a(href='/products/{{product.sku}}')
在加载路由时,应该查找未命名的视图.
你的templateUrl不要指向文件,也许你缺少文件扩展名?
确保您返回$promise解决方案,因为ui-router等待,直到它们在呈现视图之前得到解决.
我建议在路由中使用相应的配置命名视图:
.state('store', {
url: '/store',
views: {
'@': {
templateUrl: 'store/store.html',
controller: 'storeCtrl'
}
}
})
.state('products', {
url: '/products/:productSku',
templateUrl: 'store/product',
controller: 'productCtrl',
resolve: {
_product: function ($stateParams, $state, $http) {
return $http.get('http://localhost:3000/api/products/' + $stateParams.productSku ).$promise;
}
}
})
请参阅这里的文档: https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views
http://stackoverflow.com/questions/38814175/is-it-possible-to-pass-param-from-state-to-state-with-angularjs
以上所述就是小编给大家介绍的《javascript – 有可能使用angularJs将状态从状态传递到状态吗?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- C++ 值传递、指针传递、引用传递详解
- 简明笔记:指针传递和值传递
- golang中的函数参数值传递和引用传递
- 现代编程语言的值传递与引用传递
- 这一次,彻底解决Java的值传递和引用传递
- Python函数中参数是值传递,还是引用传递?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Dynamic Programming
Richard Bellman / Dover Publications / 2003-03-04 / USD 19.95
An introduction to the mathematical theory of multistage decision processes, this text takes a "functional equation" approach to the discovery of optimum policies. The text examines existence and uniq......一起来看看 《Dynamic Programming》 这本书的介绍吧!