我有以下路由:
app.config(['$routeProvider',
function ($routeProvider) {
$routeProvider.
when('/panel', {
templateUrl: 'views/panel.html'
}).
when('/make', {
templateUrl: 'views/makePanel.html',
controller: 'painelCtrl'
}).
when('/paneluser', {
templateUrl: 'views/panelUser.html',
controller: 'userCtrl'
}).
when('/paneluserblocks', {
templateUrl: 'views/userPanels.html',
controller: 'userCtrl'
}).
when('/registred', {
templateUrl: 'views/registredPanels.html'
}).
when('/color', {
templateUrl: 'views/color.html',
controller: 'alarmCtrl'
}).
otherwise('/', {
templateUrl: 'Index.html',
});
}]);
当我为特定的html模板指定控制器时,我的$ scope变量不再在视图中更新。
当我拉出特定路线的控制器规格时,情况会恢复正常。
控制器' userCtrl'通过$ location访问,适用于普通用户。反过来,' Ctrl面板'是分配给管理员用户的主要控制器。
有谁能告诉我发生了什么?
答案 0 :(得分:1)
我没有所有信息,但它正在我的演示中工作。
<强>配置强>
var app = angular.module('app',['ngRoute']);
app.config(['$routeProvider',
function ($routeProvider) {
$routeProvider.
when('/panel', {
templateUrl: 'views/panel.html'
}).
when('/make', {
templateUrl: 'views/makePanel.html',
controller: 'painelCtrl'
}).
otherwise('/', {
templateUrl: 'Index.html',
});
}]);
您的控制器的定义:
app.controller('painelCtrl',painelCtrl);
painelCtrl.$inject = ['$scope'] //and more if you need $http, services, ...
function painelCtrl($scope){
$scope.hello= "hello world"
}
<强> HTML 强>
<h1>{{hello}}</h1>
答案 1 :(得分:0)
我很抱歉igenuidade。我相信页面在同一个控制器中,我绝不会错过参考:
When ('/panel', {
TemplateUrl: 'views/panel.html',
Controller: 'panelCtrl'
}).
When ('/make', {
TemplateUrl: 'views/makePanel.html',
Controller: 'panelCtrl'
}). cotinue...
实际上,视图panel.html和makePanel.html将使用相同的控制器结构,但是每个视图我们将有一个实例(变量将被重置)。 在我的情况下,我使用工厂函数来解决问题。每当我静音控制器时,我通过set()存储感兴趣的信息并通过get()获取;
app.factory("MonitorService", function () {
var info;
function set(data) {
info = data;
}
function get() {
return info;
}
return {
set: set,
get: get
}
});