如何做AngularJS研究dom?

时间:2014-08-25 19:58:47

标签: angularjs angularjs-directive directive

如何进行AngularJS研究?

我有一个HTML,我用jquery方法.html()插入,在这个html里面我有一个指令。我该怎么做才能做到这一点?

示例:

//This directive should show a alert <div alert-directive></div>

我在$(".container").html('<div alert-directive></div>')的容器中插入上述html。该指令不执行。

2 个答案:

答案 0 :(得分:0)

我在我的爱好项目中做了类似的事情,这里有一个应该帮助你的复制粘贴:

  var html = '<div bindonce="result" class="searchResult newResult" ' +
                            'ng-click = "clicky(result)" ' +
                            'bo-id = "result.id"' + 
                            'ng-mouseenter = "hover = true"' +
                            'ng-mouseleave = "hover = false"' +
                            'ng-include src="\'views/partial/search_result.html\'">' +
                            '</div>';

                        // extending current scope
                        var newScope = scope.$new();
                        newScope.result = item;

                        var compiledHtml = $compile(html)(newScope);
                        $("#searchResults").append(compiledHtml);

答案 1 :(得分:0)

你必须承认你插入的AngularJs。为了做到这一点,你必须向你的控制器注入$ compile服务......

yourOwnApp.controller('exampleCtrl', ['$scope','$compile', function($scope, $compile) {

your controller code here ...

}]);

...然后在你的控制器内编译你的html标记并插入到DOM中:

var htmlTemplate = '<div alert-directive></div>';
var newElement = $compile(htmlTemplate)($scope);

$(".container").append(newElement);

希望它有所帮助。

干杯,卢卡