使用$routeProvider进行动态路由和编译角度代码
Using $routeProvider for dynamic routing and compiling angular code
这已经困扰了我好几天,我无法弄清楚这一点。我有一个网站在某些时候添加文章,所以我想我不应该在每次添加页面时都更改路由。所以我把它添加到我的项目中:
$routeProvider.when ('/pages/:page', { templateUrl: 'page.html', controller: 'pageCtrl' });
然后我将其用于页面Ctrl:
app.controller('pageCtrl', function ($scope, $http, $q, $routeParams, $sce, $location) {
$http.get("partials/" + $routeParams.page + ".html")
.then(function(ret) {
$scope.content = $sce.trustAsHtml(ret.data);
}, function(err) {
$location.path("/404")
});
});
然后在网页中我放了一个
<div ng-view ng-bind-html="content">{{content}}</div>
除了我把 angular 代码放在那里时,一切都运行良好。 似乎它只会解析常规的 HTML 代码,而不是 ng-stuff。 我想我应该在某个地方放一个$compile。 但我尝试了我能想到的所有组合,但没有一个有效。
我尝试过的事情:
$scope.content = $compile($sce.trustAsHtml(ret.data))($scope);
var e=angular.element($sce.trustAsHtml(ret.data));
c=$compile(e);
$scope.content = c;
c($scope);
以及其他几个什么都没做的事..
在视图中添加内容并让 Angular 指令正常工作的正确方法是什么?
这应该适用于page.html
模板中的ng-include
:
页.html:
<h1>Page {{name}}</h1>
<div ng-include="contentUrl"></div>
然后,pageCtrl
可以将这些设置为:
app.controller("pageCtrl", function($scope, $routeParams){
$scope.name = $routeParams.page;
$scope.contentUrl = $routeParams.page + ".html";
})
这是一个工作弹道
相关文章:
- 使用脚本#编译代码(独立)
- 我的所有代码在使用Webpack编译时都会运行两次
- Webpack通过npm将代码拆分为单独的模块,以及如何编译es6
- 为什么Java代码需要编译,而JavaScript代码不需要
- 编译并运行Exploit DB代码
- 编译角度代码以便能够执行内部html操作
- 在编译jquery移动代码时,Script标记在Eclipse Phonegap中不起作用
- 编译模板时出现代码气味
- 为什么我的代码可以在chrome上工作,而不是一次使用cordova编译
- 如何使ng-bind-html编译angularjs代码
- 哪个核心代码负责编译此插件中的 JavaScript
- 使用javascript HotRuby.js时,Ruby代码在哪里编译
- 使用$routeProvider进行动态路由和编译角度代码
- AngularJS从文件编译和渲染HTML代码
- AngularJS-是否可以从代码中编译和链接模板
- 如何在节点sass编译sass代码时抛出自定义错误
- 如何处理向emscripten编译代码传递/返回数组指针
- 使用require('babel/register') vs.在运行前编译代码
- angularJS-重新编译代码
- 为什么part_1.js, part_2.js显示在我的资产编译代码