加载和.html(墙贴)到不同的页面(所以我可以在我想要添加它们的所有页面中有墙贴),使用角度

时间:2014-10-16 16:39:42

标签: javascript jquery html angularjs

我昨天开始使用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将其添加到其他页面中。

1 个答案:

答案 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: '='
    }
};
}