我有两个不同的页面。我们的名字是product.php
和buy.php.
controllerProduct
为product.php
,controllerBuy
为buy.php
。
用户加载product.php
并选择要购买的产品,价格为59美元。当他或她选择产品时,$scope.setPrice();
功能在controllerProduct
中运行。 setPrice函数类似于:
window.ngApp = angular.module('myApp', []);
window.ngApp.controller('controllerProduct', ['$scope',
function ($scope) {
$scope.price = null //default
$scope.setPrice = function(){
$scope.price = 59;
};
}]);
现在,他或她选择了价格为59美元的产品,最后点击了购买按钮,将加载buy.php
页面。
在buy.php
中,我想向用户显示如下内容:
"嗨用户,你打算买这个产品!它的价格是{{price}}$
"。
如何在controllerBuy中使用controllerProduct的价格变量?
答案 0 :(得分:0)
每当您想要在控制器之间共享逻辑时,它就是服务的完美场景。
一般方法可能就是这个
//singleton to share logic between controllers
.service('ShareService', function(){
var _price = null;
this.setPrice = function(price){
_price = price;
}
this.getPrice = function(){
return _price;
}
})
//first controller
.controller('controllerProduct', function($scope, ShareService){
$scope.setPrice = function(price){
$scope.price = price;
ShareService.setPrice(price);
};
})
//second controller
.controller('controllerBuy', function($scope, ShareService){
//watch changes of the price
$scope.$watch(function(){
return ShareService.getPrice()
}, function(newVal){
$scope.selectedPrice = newVal;
})
})