在jquery加载后,angularjs控制器不起作用

时间:2015-03-19 18:40:07

标签: jquery ajax angularjs

大家好我有问题,我有一个两部分网站:

  • 一个是主要部分,我不使用angularJS(我更喜欢不在这部分使用它),这部分的任务是加载外部html(第二部分网站)通过jquery'加载'功能

  • 第二部分使用angularJS,我注意到如果我不使用控制器,角度代码会运行,而如果我添加控制器角度停止运行。

我已经看到了$ compile函数,但我想找到一个解决方案,而不是在第一部分放置angularJS,如果有可能的话,因为听起来很奇怪,ng-init角度有效,而ng-controller并没有。工作......

加载到div [第一部分]的代码:

$('.AVcontent').load('./code.html', {c:c,p:p}, function(r,status,x)
{
    if (status == 'error')
        $(".AVcontent").html("error");
});

有效的代码[第二部分]:

<div data-ng-app="" data-ng-init="title = 'Hello';">{{title}}</div>

不起作用的代码[第二部分]:

<script>
    var app = angular.module("myApp", []);
    app.controller("myCtrl", function($scope)
    {
        $scope.firstName= "John";
        $scope.lastName= "Doe";
    });
</script>

<div ng-app="myApp" ng-controller="myCtrl">
    First Name: <input type="text" ng-model="firstName"><br>
    Last Name: <input type="text" ng-model="lastName"><br>
    <br />
    Full Name: {{firstName + " " + lastName}}
</div>

有谁知道如何解决这个问题? 感谢。

---编辑: 为了更好地理解我不能同时使用两个ng-app:

  • 在firstpart.html中我有加载代码,这永远都是永远存在的。
  • 在secondpart.html中,我首先尝试了第一个代码,我没有控制器,但我使用的是ng-init:第二部分一切正常。
  • 现在我用上面提到的第二个代码替换了secondpart.html,我发现没有任何东西可以用了。

1 个答案:

答案 0 :(得分:0)

Angular将编译他发现的第一个应用程序,,, 所以你需要像这样手动引导其他应用程序 angular.bootstrap(&#34;#DIVID&#34; [&#34;对myApp&#34;]);