我正在尝试创建一个Angular.JS计算器,如果某个工厂Data对象为空,它将返回到根页面。我的问题是,我无法弄清楚如何访问Data.Terms
对象,以查看$routeProvider
路径下的/condition
配置中是否为空。
在下面的代码中,显示if (!Data.Terms)
的部分无效。我希望它返回存储在工厂数据函数中的术语的值:
// Creating the module
var myApp = angular.module("app-calculator", ["calculatorControls", "ngRoute"])
.config(function ($routeProvider) {
$routeProvider.when("/", {
controller: "termsController",
controllerAs: "vm",
templateUrl: "/content/templates/termsView.html"
});
$routeProvider.when("/condition", {
controller: "conditionController",
controllerAs: "vm",
templateUrl: "/content/templates/conditionView.html",
resolve: {
mess: function ($location) {
// Check if the Data.Terms field has been completed,
// if not then return to the root path.
if (!Data.Terms) {
$location.path('/');
}
//
}
}
});
// my Data
myApp.factory('Data', function () {
var Terms = '';
return {
Terms: Terms,
}
})
答案 0 :(得分:1)
您应该在解析部分注入Data
作为依赖项。
var myApp = angular.module("app-calculator", ["calculatorControls", "ngRoute"])
.config(function ($routeProvider) {
$routeProvider.when("/", {
controller: "termsController",
controllerAs: "vm",
templateUrl: "/content/templates/termsView.html"
});
$routeProvider.when("/condition", {
controller: "conditionController",
controllerAs: "vm",
templateUrl: "/content/templates/conditionView.html",
resolve: {
mess: function ($location, Data) {
// Check if the Data.Terms field has been completed,
// if not then return to the root path.
if (!Data.Terms) {
$location.path('/');
}
//
}
}
});