Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在AngularJS中使用路由连接控制器时出现问题_Angularjs_Controller_Routing_Ng Show_Ng Hide - Fatal编程技术网

在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;
});