ng-click不适用于通过jQuery Append创建的链接



如果在statis链接上使用角度js脚本的ng-click属性,它运行良好 代码如下所示

<div class="modal fade" id="cModal" ng-controller="modalController">
  <li id="modalp1" class="active"><a ng-click="parentOptions()" href="#">Add Parent</a></li>
</div>

如果通过 jquery append() 或 prepend() 方法动态创建的示例链接,则单击事件不起作用。 示例代码如下所示。

$('#cpartners').prepend("<li><a ng-click="parentOptions()" href="#">Add Parents (Mother & Father)</a></li>");

控制器示例代码如下所示

function modalController($scope) {
  $scope.sthumbEdit = function() {
    $(".dur").show();
  };
  $scope.hthumbEdit = function() {
    $(".dur").hide();
  };
  $scope.parentOptions = function() {
  prepareParentOptions();
  };
  $scope.siblingOptions = function() {
   prepareSiblingOptions();
  };
  $scope.childOptions = function() {
   prepareChildOptions();
  };

}

有没有办法强制执行 ng-click 属性在 dyyanm 生成的链接上效果很好。

如果使用jQuery添加HTML,则需要编译内容并将其注入DOM中。

var element = $compile('<p>{{total}}</p>')(scope);

有关示例 http://docs.angularjs.org/guide/compiler,请参阅"如何编译指令"部分

直接从

控制器更改 DOM 是一个错误,您不应该这样做,而是需要使用指令来创建您的"自定义元素"和服务。

如果你使用AngularJS,直接使用Jquery来编辑你的DOM,会适得其反,如果你想使用Jquery,你必须把它包装在一个指令中。

我推荐你 AngularJS 教程,以便很好地理解 AngularJS,以及包含许多 Angularjs 模块的 NGmodules

,可以帮助你。

最新更新