在AngularJS中使用路由连接控制器时出现问题
我会尽力解释 我的控制器似乎连接/工作不正常。我不确定确切的原因,每次我检查我的语法似乎都是正确的。这是我的路线声明:在AngularJS中使用路由连接控制器时出现问题,angularjs,controller,routing,ng-show,ng-hide,Angularjs,Controller,Routing,Ng Show,Ng Hide,我会尽力解释 我的控制器似乎连接/工作不正常。我不确定确切的原因,每次我检查我的语法似乎都是正确的。这是我的路线声明: angular.module('portfolio', ['ngRoute']).config(function ($routeProvider, $locationProvider) { $routeProvider.when('/', { templateUrl: '/public/app/views/main.html', cont
angular.module('portfolio', ['ngRoute']).config(function ($routeProvider, $locationProvider) {
$routeProvider.when('/', {
templateUrl: '/public/app/views/main.html',
controller: 'MainCtrl',
controllerAs: 'main'
}).when('/about', {
templateUrl: '/public/app/views/about.html',
controller: 'AboutCtrl',
controllerAs: 'about'
}).when('/Resume', {
templateUrl: '/public/app/views/resume.html',
controller: 'ResumeCtrl',
controllerAs: 'Resume'
}).when('/Samples', {
templateUrl: '/public/app/views/samples.html',
controller: 'SamplesCtrl',
controllerAs: 'Samples'
}).otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(false).hashPrefix('');
});
我的简历视图就是一个例子:
<paper-button ng-click="changeEx()" raised>Experience</paper-button>
<paper-button ng-click="changeSkills()" raised>Skills</paper-button>
<paper-button ng-click="changeEdu()" raised>Education</paper-button>
<paper-button ng-click="changeMisc()" raised>Misc.</paper-button>
<div ng-hide="exp">
<p>Experience</p>
</div>
<div ng-show="skills">
<p>Skills</p>
</div>
<div ng-show="education">
<p>Education</p>
</div>
<div ng-show="misc">
<p>Misc.</p>
</div>
angular.module('portfolio', []).controller('ResumeCtrl', function () {
this.exp = true;
});
显然,这个控制器是不完整的,但我只是尝试使用这个变量来测试它 引用已声明的模块时,请勿使用方括号。Angular将其解释为声明一个新模块:
angular.module('portfolio').controller('ResumeCtrl', function () {
this.exp = true;
});
接下来我要检查的是你的HTML主页。您的页面上是否有此指令:
<div ng-view></div>
在您看来,您应该使用在controllerAs中定义的相同名称引用变量:
从控制器声明中删除括号,否则将重新定义公文包应用程序。所以:angular.模块'portfolio'。controller…您也没有描述您遇到的问题。不工作并不能告诉我们很多。具体点。什么不起作用?对不起,我应该说得更具体些。潜水艇没有藏起来。视图切换工作正常,但控制器从未应用过。我尝试删除括号并同时使用$scope和您的其他建议,但仍然存在相同的问题。可能是因为我在括号中测试吗?我不得不离开,但稍后会发布一个fire base的页面副本,也许这会有帮助再次感谢,即使在采纳了你的建议之后,我似乎仍然有同样的问题。DIV似乎对ng show之类的指令没有反应。最重要的是,firebase似乎不想部署我的视图或控制器目录,所以我无法向您展示。
angular.module('portfolio').controller('ResumeCtrl', function () {
var Resume = this;
Resume.exp = true;
});
<div ng-hide="Resume.exp">
<p>Experience</p>
</div>
angular.module('portfolio').controller('ResumeCtrl', function ($scope) {
$scope.exp = true;
});