AngularJS:动态加载的组件未显示

时间:2018-05-03 19:35:39

标签: .net angularjs asp.net-mvc razorengine dynamic-content

我继承了一个使用AngularJS和JQuery混合的项目。我目前遇到动态加载的md-switch指令在动态加载时不显示的问题。请参阅以下内容:

在我看来,我有

...
<md-switch class="md-primary md-switch-custom-margin" aria-label="Done Switch" ng-model="done"
          ng-change="markDone($event, @Newtonsoft.Json.JsonConvert.SerializeObject(!Model.Done))" />
...

在第一页加载时,此控件显示正常。但是,在按钮单击时,我会通过ajax检索md-switch所在容器的新鲜局部视图,如下所示:

 $.ajax({
  url: "../../MyController/GetPartial",
  type: "GET",
  dataType: "html"
}).done(function (response) {
  $("#body-container").html(response);

  var angularScope = angular.element("div[ng-controller='MyAngularController'").scope();

  //have tried both of the following
  //angularScope.$apply();

})

当局部视图加载到页面中时,页面上的所有md-switch都不可见,尽管它们确实出现在DOM上,并且看起来格式与发生任何操作之前的格式相同。 / p>

在审阅了很多帖子后,我仍然不确定我在这里失踪了什么。感谢所有帮助。

2 个答案:

答案 0 :(得分:1)

我在jquery脚本中使用String args[]; 找到了解决问题的方法,如下所示:

我的ajax请求的完成回调:

$compile

答案 1 :(得分:0)

md-switch指令/组件未链接且未编译,因此angular不识别它