如何从angular.js中的非标准目录加载部分文件?
How do you load partials from a non-standard directory in angular.js?
我把我的angular应用设置为Symfony应用中的一个bundle。由于这个限制,angular应用的目录结构是不同的。所有公共资源都被符号链接到一个静态目录,包括部分资源。我让app加载,控制器启动,但没有一个局部为它们特定的控制器加载。我把它作为一个独立的应用程序(在Symfony之外),所以我一定是错过了一些新的配置。
index.html.twig:
注意:javascript文件加载正常-这是正确的资源路径
<body ng-controller="MainController">
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<ul class="nav navbar-nav navbar-right">
<li class="active"><a href="#/">Home</a></li>
<li><a href="#/groups">Groups</a></li>
</ul>
</div>
</nav>
<div ng-view=""></div>
<div ng-view></div> <!--[if lt IE 7]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js"></script>
<script src="bundles/translations/webadmin/app/js/ngroute.js"></script>
<script src="bundles/translations/webadmin/app/js/app.js"></script>
<script src="bundles/translations/webadmin/app/js/services.js"></script>
<script src="bundles/translations/webadmin/app/js/controllers.js"></script>
<script src="bundles/translations/webadmin/app/js/filters.js"></script>
<script src="bundles/translations/webadmin/app/js/directives.js"></script>
</body>
app.js:
注意:我试着让templateUrl只是局部/以及
angular.module('myApp', [
'ngRoute',
'myApp.filters',
'myApp.services',
'myApp.directives',
'myApp.controllers'
]).config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/groups', {templateUrl: 'bundles/translations/webadmin/app/partials/groups.html', controller: 'GroupsController'});
$routeProvider.when('/', {templateUrl: 'bundles/translations/webadmin/app/partials/home.html', controller: 'HomeController'});
$routeProvider.otherwise({redirectTo: '/'});
}]);
controllers.js
注意:警报可以正常启动,但是局部不能加载…
angular.module('myApp.controllers', [])
.controller('MainController', ['$scope', function($scope) {
alert('here?');
}])
.controller('HomeController', ['$scope', function($scope) {
alert('here2');
}])
.controller('GroupsController', ['$scope', function($scope) {
// TODO see below
}]);
控制台输出:
Consider using 'dppx' units, as in CSS 'dpi' means dots-per-CSS-inch, not dots-per-physical-inch, so does not correspond to the actual 'dpi' of a screen. In media query expression: (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) translations:1
Blink is considering rejecting non spec-compliant cross-origin web font requests: https://d3nkxvtkt5c8vi.cloudfront.net/0.4.2/fonts/proxima_nova_light_0.woff. Please use Access-Control-Allow-Origin to make these requests spec-compliant.
你知道我错过了什么吗?
看起来您的问题是索引标记中缺少ng-view
。
<div ng-view=""></div>
如果没有这个元素,你的控制器将加载,但没有地方插入你的视图模板。
你可以在这里阅读更多信息
相关文章:
- 什么更好?使用iframe或jQuery之类的东西在外部网站中加载HTML文件
- 在Javascript中加载JSON文件
- 如何在dojo应用程序构建概要文件中加载json文件
- 如何在three.js中加载指定文件内容而非路径的三维模型
- 使用ajax在html中加载html文件时出现的问题
- 加载Js文件应用程序加载
- 先在Angular中加载配置文件,然后再加载其他文件
- 没有在django项目中加载CSS文件
- 如何加载js文件并在CEF上执行
- 寻找HTML5视频是否需要加载整个文件
- 如何使用javascript只加载mp3文件标题
- 无法查找元素'手动加载CSS文件时的CSS属性
- IE7 未加载 JavaScript 文件
- 加载 js 文件时出现 404 错误
- 加载CSS文件并覆盖上一个文件
- Angular $http 服务不加载 json 文件
- 无法在 jsTree 中通过 HTTP 加载 XML 文件
- 使用 JavaScript 动态加载 CSS 文件
- 如何在打开模型时动态加载控制器文件
- Grunt 可以直接从文件对象/数组或 glob 中的“src”值通过 HTTP 加载远程文件