首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-app并不总是开始

ng-app并不总是开始
EN

Stack Overflow用户
提问于 2015-01-23 12:37:35
回答 1查看 201关注 0票数 0

我开始在我的新项目中遇到问题,我在金字塔服务的jinja2模板中使用棱角应用程序。

一个模板中有一个带有ng应用程序的DIV,它有时才会开始工作。我试过用一个只记录“我在这里”的控制器的简单模块。进入控制台,但它只是有时起作用(我100%确信模板被正确地呈现)。

我解决这个问题的方法是使用ng-app标记,同时使用angular.bootstrap,这有时会产生错误,但会使应用程序工作。不管出于什么原因,仅仅使用angular.bootstrap并不总是有效的。

我是不是漏掉了什么?

代码语言:javascript
复制
var ticketApp = angular.module('ticketApp', ['ngRoute', 'ui.bootstrap']);

ticketApp.factory('ticketAppData', function() {
    var all_ticket_data = {};
    return {all_ticket_data: all_ticket_data};
});

ticketApp.controller('TicketAppController', function($scope, ticketAppData) {
});

ticketApp.controller('TicketAppListController', function($scope, ticketAppData) {
    $scope.data = ticketAppData;
});

ticketApp.controller('TicketAppDetailsController', function($scope, ticketAppData) {
    $scope.data = ticketAppData;
});

ticketApp.config(['$routeProvider',
    function($routeProvider) {
        $routeProvider.
        when('/list', {
            templateUrl: '/static/ticket-ng-app/views/list.html',
            controller: 'TicketAppListController'
        }).
        when('/details/:ticket_id', {
            templateUrl: '/static/ticket-ng-app/views/details.html',
            controller: 'TicketAppDetailsController'
        }).
        otherwise({
            redirectTo: '/list'
        });
    }
]);

angular.bootstrap($('#ticketApp-window'), ['ticketApp']);
代码语言:javascript
复制
<div id="ticketApp-window" ng-app="ticketApp" ng-controller="TicketAppController">
  <div ng-view class="ticket-app-view"></div>
</div>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.10/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.10/angular-route.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.12.0/ui-bootstrap.js"></script>
<script src="../../static/ticket-ng-app/app.js"></script>

EN

回答 1

Stack Overflow用户

发布于 2015-01-23 13:12:31

尝试删除ng-app,将控制器放在ng视图上,并按如下方式调用angular.bootstrap:

代码语言:javascript
复制
var ticketAppWin = document.getElementById('ticketApp-window');
angular.bootstrap(angular.element(ticketAppWin), ['ticketApp']);

与其让angular.element自己完成DOMElement,不如让它结束它。

看看这把小提琴:http://jsfiddle.net/u78meq8g/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28110110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档