Angularjs 当指令放置在动态加载的内容中时,如何使其工作?

Angularjs 当指令放置在动态加载的内容中时,如何使其工作?,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我已经创建了一个指令,当放在我的主主页上时,它可以正常工作。但是,如果我试图对通过ajax加载的内容使用该指令,那么它就不起作用。为什么?考虑这个包装DePress插件的指令: var app = angular.module("app",[]) app.directive('datePicker', function () { return { restrict: 'A', link: function(scope, element, attrs) { $(el

我已经创建了一个指令,当放在我的主主页上时,它可以正常工作。但是,如果我试图对通过ajax加载的内容使用该指令,那么它就不起作用。为什么?考虑这个包装DePress插件的指令:

var app = angular.module("app",[])
app.directive('datePicker', function () {
return {
    restrict: 'A',
    link: function(scope, element, attrs) {
        $(element).datepicker(scope.$eval(attrs.datePicker));
    }
}
});
这项工作:

<html lang="en" ng-app="app">
<head>...</head>
<body ng-controller="AppCtrl">
    <input date-picker="{changeMonth: true, changeYear: true, yearRange: '2000:2050'}"  type="text">
</body>
</html>

但它不再有效。我所有的指令都是这样。它们在我的主页上工作,但是一旦我开始通过ajax调用动态加载新内容,那么这些指令就不再工作了。我对Angular非常陌生,所以如果有任何回答都是初学者的话,我将不胜感激。感谢您的回复

我想这个问题的答案可能会解决你的问题


如何加载动态内容?是否加载外部模板,然后通过jQuery的.html()将其放入页面?如果这是我怀疑的,那么它不起作用的原因是AngularJS不知道有任何变化。有时我通过jQuery使用
$ajax
调用,但有时我只是通过AngularUI的
$stateProvider
进行状态更改。在这两种情况下,我都无法让指令在新加载的模板中工作。如何让angular知道这些模板更改?根据该解决方案,我可以这样做:
$(“#dynamicContent”).html($compile(“Incrementcount:{{count}}”)(scope))。但是我应该把这个代码放在哪里呢?此外,我正在加载大量模板,而不仅仅是一行代码。我对如何使主控制器之外的任何东西(指令等)工作感到困惑。一旦我开始输入数据,就什么都不起作用了。我找不到任何文章简单解释如何在angular应用程序中绑定ajaxed内容。如果您想通过ajax获取数据,必须使用$resource并从控制器获取数据。如果在angular作用域之外执行此操作,则必须告诉angular您使用$scope更新了作用域。$apply()
<input date-picker="{changeMonth: true, changeYear: true, yearRange: '2000:2050'}"  type="text">