在运行时调用方法而不在angularJs中触发任何事件

时间:2017-05-10 12:55:48

标签: javascript jquery html angularjs

我正在开发AngularJS + Html应用程序。我想在运行时创建div时自动调用事件。

Div使用ng-repeat="obj in objList"创建。作为使用{{obj.shortName}}创建的第一个div,其对应的div加载vm.relatedLists的值。 vm.relatedLists将根据obj.shortName

加载
<div class="col-sm-8" ng-repeat="obj in objList">
    <div class="col-sm-2" ng-show="viewRule"><div class="col-sm-2" ng-if="obj.fullName !== '-'">{{obj.shortName}}</div><div class="col-sm-4" ng-if="obj !== '-'"></div></div>
        <div class="col-sm-4" ng-if="obj.fullName !== null"><input placeholder="{{obj.fullName}}" class="form-control"  id="field_obj{{obj.id}}" name="field_obj{{obj.id}}" type="text" ng-model="vm.details.obj"  uib-typeahead="reg.fullName for reg in vm.relatedLists | filter:{fullName:$viewValue} | limitTo:25" typeahead-editable="false" class="form-control"></div>
        <div class="col-sm-1" ng-if="obj.fullName !== null && obj.fullName !== undefined && obj.fullName !== ''"> <button class="btn btn-primary"><i class="fa fa-eye" style="font-size: 16px;" aria-hidden="true"></i></button></div>
        <div class="col-sm-1" ng-if="obj.fullName !== null"><button class="btn btn-primary" ng-click="vm.refresh('mpr',1)" ><i class="fa fa-refresh" style="font-size: 16px;" aria-hidden="true"></i></button></div>
        <div class="col-sm-12"><p></p></div>
    </div>
</div>

在运行时创建div时调用的方法是:

function changeLoadLists(shortName){
    if (shortName!= undefined) {
        var chapterId='I';
        if (item == 'one' || item == 'two') {
            if (item == 'one'){
                id='I';
            }else{                                                        
                id='II';
            }
            vm.relatedLists = GetAllLists.query({
                id: id
            }, onListsSuccess);

        }
    }
}

function onListsSuccess(result) {
    vm.relatedLists = result;   
}

如果我没有点击事件或其他要触发的事件,如何自动触发事件,它应该通过传递shortName来加载带vm.relatedLists的预先键入值。

如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

我并不是真的了解你的需要,但为了达到你在标题中提出的要求,你可以在你的标签上使用nginit属性,看看这个documentation

答案 1 :(得分:0)

您可以通过 ng-init 来实现此目的,并确保将其与 ng-if 一起使用,因为它仅在条件{{1}上创建dom元素与隐藏dom元素的true不同。

请参阅此fiddle link并尝试替换ng-show以查看差异