【问题标题】:Angular.js app doesn't see a controllerAngular.js 应用程序看不到控制器
【发布时间】:2016-04-29 23:38:42
【问题描述】:

我有一个标准应用:

angular.module('angularFrontApp', [
    'ngRoute',
    'ngResource',
    'ngAnimate'
]).config(AppConfig);

还有一些控制器

angular.module('angularFrontApp')
    .controller('formsController', formsController);

formsController.$inject = ['$scope', 'AjaxForms', 'appConst'];
function formsController ($scope, AjaxForms, appConst) {

    //.....
}

我正在尝试在 ng-include 中调用控制器,但在 dynamicTemplate 中失败(它的动态变量类似于 some.html):

<div ng-include="dynamicTemplate"></div>


<div ng-controller="formsController">some stuff....</div>

但如果我在 include 之外调用控制器 - 它工作正常。 为什么 Angular 在包含中看不到控制器和其他东西?

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    因为您的 ng-include 错误:ng-include 接受表达式而不是字符串。

    <div ng-include="'some.html'"></div>
    

    【讨论】:

    • 我对包含没有问题。所有内容都渲染得很好。如果它从变量中动态包含怎么办? ng-include="动态模板"。我怎样才能包含它?
    • @Oleg_webdev:你可以使用变量。在我的前端应用程序中,我将变量存储在控制器中,例如 $scope.url.header 和 ng-include="url.header"。通过这样做,我可以在 url 中添加后缀(如'mytemplate?v=' + build_id),这允许应用程序在我更新网站时避免缓存问题。如果不需要考虑缓存,可以使用字符串。
    • 还是不行。 1) angularjs 可以包含不带单引号的字符串 2) 我包含带有变量的模板。包含内容渲染但找不到控制器
    • 如果控制器来自ng-bind-html怎么办?我从 db 获取数据放入
      并且该数据包含
    猜你喜欢
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多