为了账号安全,请及时绑定邮箱和手机立即绑定

AngularJS + JQuery:如何在angularjs中使用动态内容

AngularJS + JQuery:如何在angularjs中使用动态内容

繁星点点滴滴 2019-07-30 14:10:07
AngularJS + JQuery:如何在angularjs中使用动态内容我正在使用jQuery和AngularJS开发Ajax应用程序。当我使用jQuery的html函数更新div的内容(包含AngularJS绑定)时,AngularJS绑定不起作用。以下是我要做的代码:$(document).ready(function() {   $("#refreshButton").click(function() {     $("#dynamicContent").html("<button ng-click='count = count + 1' ng-init='count=0'>Increment</button><span>count: {{count}} </span>")   });});</style><script src="http://docs.angularjs.org/angular-1.0.1.min.js"></script><style>.ng-invalid {   border: 1px solid red;}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script><div ng-app="">   <div id='dynamicContent'>     <button ng-click="count = count + 1" ng-init="count=0">         Increment      </button>     <span>count: {{count}} </span>   </div>   <button id='refreshButton'>     Refresh  </button></div>我在带有ID的div中有动态内容#dynamicContent,并且我有一个刷新按钮,可以在单击刷新时更新此div的内容。如果我不刷新内容,增量将按预期工作,但在刷新后,AngularJS绑定将停止工作。这可能在AngularJS中无效,但我最初使用jQuery构建应用程序并稍后开始使用AngularJS,因此我无法将所有内容迁移到AngularJS。任何有关在AngularJS中工作的帮助都非常感谢。
查看完整描述

3 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

因为angular.element(document).injector()给出了错误injector is not defined 所以,我创建了一个可以在AJAX调用之后运行的函数或者使用jQuery更改DOM的函数。

  function compileAngularElement( elSelector) {

        var elSelector = (typeof elSelector == 'string') ? elSelector : null ;  
            // The new element to be added
        if (elSelector != null ) {
            var $div = $( elSelector );

                // The parent of the new element
                var $target = $("[ng-app]");

              angular.element($target).injector().invoke(['$compile', function ($compile) {
                        var $scope = angular.element($target).scope();
                        $compile($div)($scope);
                        // Finally, refresh the watch expressions in the new element
                        $scope.$apply();
                    }]);
            }

        }

通过传递新元素的选择器来使用它。像这样

compileAngularElement( '.user' ) ;


查看完整回答
反对 回复 2019-07-30
  • 3 回答
  • 0 关注
  • 736 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信