ng-Include:从未调用过的求值函数

时间:2015-03-05 17:40:55

标签: javascript angularjs angularjs-directive

HTML:

    <section ng-controller="NavigationController as navCtrl">
    <ul>
        <li ng-click="navCtrl.setNav(1)" ng-class="{ 'myApp_nav_items_selected': navCtrl.isNavPage(1) , 'myApp_nav_items': !navCtrl.isNavPage(1) }"><a ng-class="{ 'myApp_nav_selected_a': navCtrl.isNavPage(1) , 'myApp_nav_a': !navCtrl.isNavPage(1) }" href="#">Option 1</a></li>
        <li ng-click="navCtrl.setNav(2)" ng-class="{ 'myApp_nav_items_selected': navCtrl.isNavPage(2) , 'myApp_nav_items': !navCtrl.isNavPage(2) }"><a ng-class="{ 'myApp_nav_selected_a': navCtrl.isNavPage(2) , 'myApp_nav_a': !navCtrl.isNavPage(2) }" href="#">Option 2</a></li>
        <li ng-click="navCtrl.setNav(3)" ng-class="{ 'myApp_nav_items_selected': navCtrl.isNavPage(3) , 'myApp_nav_items': !navCtrl.isNavPage(3) }"><a ng-class="{ 'myApp_nav_selected_a': navCtrl.isNavPage(3) , 'myApp_nav_a': !navCtrl.isNavPage(3) }" href="#">Option 3</a></li>    
    </ul>

    <div class="myAppta_page">
    <div ng-include="navCtrl.getPage()"></div>      
    </div>
    </section>  

JS

tripdataApp.controller('NavigationController', function ($scope) {
   this.$scope = $scope; 
   this.$scope.navPage =1;

    this.setNav = function(theNavPage) {   <--- WORKS OK
       console.log("set nav " + theNavPage);
        this.$scope.navPage = theNavPage;
        console.log("nav IS set to " +  this.$scope.navPage);
    }; 

    this.isNavPage = function(checkNavPage) {   <---- WORKS OK
        return this.$scope.navPage === checkNavPage;
    };

    this.getPage = function() {      <---- NEVER CALLED

         console.log("-=-=-=-=- nav IS set to " +  this.$scope.navPage);


        switch (this.$scope.navPage)
        {
            case 1: 
                console.log("dashboard");
                return "#/pages/dashboard.php";
                break;
            default:
                console.log("ddefault");
                return "#/pages/unimplemented.php";
                break;
        }
    }
});

我做错了什么?

1 个答案:

答案 0 :(得分:0)

根据我在文档中可以看到的,没有参考说明你可以在ng-include指令中评估控制器方法。除此之外,它确实说你可以使用常量,但你必须添加包含ng-include内容的单引号。

了解更多信息https://docs.angularjs.org/api/ng/directive/ngInclude

我认为另一种方法是解决这个问题。