init()不会在angularJs中第二次调用

时间:2015-09-13 09:53:08

标签: angularjs html5

我有类似下面的内容。我是一个有约束力的国家。

在下拉列表更改中,我将显示不同的视图。

 $scope.countries = [{id : 1, name : 'USA1', pageName : 'USA'}, {id : 2, name : 'USA2', pageName : 'USA'},{id : 3, name : 'India3', pageName : 'India'}, {id : 4, name : 'India4', pageName : 'India'}];

 <select class="form-control" ng-model="selectedCountry" ng-options="country as country.name for country in countries">
    <option value="">Select Country</option>
 </select>

-

<div  ng-include="'views/'+selectedCountry.pageName+'.html'"></div>

我在USAController和amp;中都有init()方法。 indiaController。 现在,

  1. 如果我选择USA1,那么USAController - init() - 调用
  2. 如果我选择India1然后选择indiaController - init() - 调用
  3. 如果我选择USA2,那么init() - 不会调用。 - 问题
  4. 观察:如果选择X1国家/地区,则会加载X.html。如果选择X2则X.html不刷新(init()未调用)。如果我选择Y1国家,则Y.html加载。现在,如果我选择X1或X2,它正确加载。 假设我在这里选择了X2 ..工作正常。再次,如果我选择X1然后相同的问题重复。

    控制器中的我的init()函数如下所示。

    (function init() {
        getSomeThing();
    })();
    

    请问任何解决方案?

1 个答案:

答案 0 :(得分:0)

尝试使用

<div ng-include="'views/'+selectedCountry.name+'.html'" onload="getSomeThing()"></div>

onload属性中的表达式应该在加载新部分时进行评估。

http://www.boutell.com/newfaq/misc/urllength.html