首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角1.5.8 -当角完成将数据绑定到元素时,如何执行操作?

角1.5.8 -当角完成将数据绑定到元素时,如何执行操作?
EN

Stack Overflow用户
提问于 2016-09-13 23:10:03
回答 1查看 126关注 0票数 0

我有一个有角度的应用程序,在这个应用程序中,我希望等到数据被绑定到一个选择下拉时,直到我将jquery方法应用到选择下拉列表之前。

在前面的相关问题中,我能够使用以下代码成功地填充下拉列表。

代码语言:javascript
复制
 <select name="shippingState" id="shippingState" ng-model="accountAddresses.shippingState"  ng-options ="state.abbreviation for state in states track by state.abbreviation" class="state form-control" size="1">
                       </select>

AngularJS (1.5.8) - How do I populate a select option list directly from within controller that gets a json object?

现在我想应用jquery方法(一个定制的选择框下拉样式库)。

当数据加载时,我可以在浏览器控制台中手动应用该方法。问题是,我只能在浏览器控制台中手动执行操作。

当下拉数据正在获取时,我无法在角度上运行相同的方法。

问题:当数据绑定以角度结束时,如何触发操作?

编辑-我创建了一个指令并修改了我的html以触发指令。

不过,我仍然没有得到一个自定义样式元素。

链接到根控制器的指令

代码语言:javascript
复制
  directive('onDataBind', function (id) {
                        alert(id);
                          function link(elem, id) {
                            elem.ready(function(id){
                              $scope.CreateDropDown(id);
                              });
                            }
                          })

HTML修改

代码语言:javascript
复制
           <select name="billingState" id="billingState" ng-model="accountAddresses.billingState"  ng-options ="state.abbreviation for state in states track by state.abbreviation" on-data-bind="CreateDropDown('billingState')" class="state form-control" size="1">
           </select>

在作用域级别创建下拉列表

代码语言:javascript
复制
   $scope.CreateDropDown = function(id){
      $("#"+id).selectbox();
      //selectbox is the following library - https://github.com/olivM/jQuery-Selectbox
    }
EN

回答 1

Stack Overflow用户

发布于 2016-09-14 00:27:23

下面的指令代码帮助解决了这个问题。我按照建议使用了指令和超时。

代码语言:javascript
复制
directive('onDataBind', function () {
                  function link(scope, elem) {
                    var id = elem.attr("id");
                    elem.ready(function(){
                     setTimeout(function () {
                       $("#"+id).selectbox();
                     }, 1000);
                      //$('#'+id + ' .sbHolder > .sbOptions').wrap("<div class='optionsDiv'></div>");
                      //$("#"+id + " .sbHolder > a.sbToggle, "+id+" + .sbHolder a.sbSelector").wrapAll("<div class='selectDiv'></div>");
                    })(id);
                    }
                    return {
                      link: link,
                      restrict: 'A',
                    };
                  })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39480270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档