AngularJS:指令将对象添加到$ scope但在控制器中未定义

时间:2017-10-30 09:04:34

标签: javascript angularjs twitter-bootstrap

我是AngularJS的新手。 我想用angular-bootstrap-tour创建一个演练。它说:

  

tour指令创建一个包含所有游览步骤的包装器,并将游览对象添加到作用域。

所以我在我看来有这个代码:

<div tour placement="top">
   <div tour-step order="0" title="Main Menu" content="This is the main menu." placement="bottom">
</div>

现在在我的控制器中,我想在页面加载时使用此代码开始游览:

$scope.tour.restart(tour);

但它说:$scope.tour is undefined! 当我将下面的代码添加到我的视图中时,按钮开始游览!如何在视图中定义游览但不在控制器的$scope中定义?

<button class="btn" ng-click="tour.restart(true)">Start Tour</button> 

1 个答案:

答案 0 :(得分:1)

在您的js文件中添加代码,如

    function execute(moduleType) {
        if(moduleType) {
           var tour = new Tour({orphan: false});
           tour.addSteps(setRoute(moduleType));
           tour.init();
           tour.restart();
           tour.start(true);
        }
    }

在HTML文件中添加代码,例如

<button class="btn" ng-click="execute(true)">Start Tour</button>