我昨天开始使用angular,我想在一个单独的文件中添加一些带有某些行为的.html并将其添加到其他文件中。例如,我想在一个.html中添加墙贴,我希望能够将这些墙贴添加到我想要的特定标签中的任何页面。我使用了一些jquery ..所以我所做的就是这个(但摘要似乎没有起作用):
这是我要添加的html(我单独测试并且有效):
<div ng-app="" ng-controller="customersController">
<ul>
<li ng-repeat="x in names">
<b> {{ x.texto }}</b> {{x.id }}
</li>
</ul>
<input type="text" ng-model="tbPost">
<button ng-click="publicarPost()">Click Me!</button>
</div>
<script>
function customersController($scope,$http) {
$http.post(urlSitio + url , {id_partido : 1}).
success(
function(data, status, headers, config) {
$scope.names = data.consulta;
$scope.$digest();
}).
error(errorCallback);
}
</script>
这是我将其添加到其他页面中的标签的方式
// the function that load the .html
function cargarControl(url,tag){
$.get(urlControl+url, {},
function(content) {
$("#"+tag).append(content);
}, 'html');
}
// calling that function
cargarControl("wallPartido", "divPosts");
angular.element('customersController').scope().$digest();
它不起作用,页面显示{{x.texto}} {{x.id}}而不是帖子...... 我也试过$ digest();但也不起作用。我怎样才能使它工作?如果不能以这种方式完成,还有另一个吗? (其实我想要一个没有jquery的人)
编辑:我想要实现的是拥有一个带有某些行为的html文件(比如.net中的控件),并且能够将它嵌入到我想要的任何其他页面中的特定标记中。例如,如果我有一个带有所有墙贴的页面,我希望能够轻松地将其嵌入到其他页面中的某个标签中。认为您构建了一个javascript计算器,并且您不想要粘贴代码,但是您想要调用包含它的.html将其添加到其他页面中。答案 0 :(得分:1)
请考虑以下示例:http://jsbin.com/xehovigabule/1/watch?html,js,output
我创建了一个自定义指令,您可以将其添加到任何页面。
angular.module('myApp', [])
.controller('customersController', customersController);
function customersController($scope,$http) {
$scope.wallposts = [{
texto: "Lorem ipsum"
},{
texto: "Dolor sit maet"
}, {
texto: "Lorem sorem"
}];
$http.post("http://get.data")
.success(function(data) {
$scope.names = data.consulta;
})
.error(function() {
//err
});
}
angular.module("myApp")
.directive("wallPosts", wallPosts);
function wallPosts() {
return {
restrict: 'E',
templateUrl: "path/to/partial.html",
scope: {
posts: '='
}
};
}