这已经困扰了我好几天了,我无法弄清楚。我有一个网站,该网站在某些时候添加了文章,所以我认为我不必每次添加页面时都更改路由。所以我将其添加到我的项目中:
$routeProvider.when ('/pages/:page', { templateUrl: 'page.html', controller: 'pageCtrl' });
然后我将其用于pageCtrl:
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>
除非我在其中放置角度代码,否则一切都很好。似乎它只会解析常规的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指令正常工作的正确方法是什么?
这应该可以ng-include
在您的page.html
模板中很好地工作:
page.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";
})
这是一个正在工作的小伙子
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句