【问题标题】:Typeahead.js with angular ui-routerTypeahead.js 与 Angular ui-router
【发布时间】:2014-07-03 08:03:53
【问题描述】:

我按照本教程构建了一个多步骤表单:http://scotch.io/tutorials/javascript/angularjs-multi-step-form-using-ui-router 一切正常。

我现在想在这些表单上使用 Twitter 的 typeahead.js。所以我需要对使用 angular-ui-router 加载的输入进行预先输入调用。

我注意到 angular-ui-router 提供了一个onEnter 回调,当状态变为活动状态时会调用该回调。从那里调用 typeahead 函数似乎不起作用,似乎调用是在视图加载之前进行的(不是 100% 确定的)。

如何在加载了 angular-ui-router 的输入字段上初始化 typeahead?

我尝试了什么:

.state('questionnaire.relationship', {
  url: '/relationship',
  templateUrl: 'questionnaire/relationship.html',
  onEnter: function(){
    var relationshipList = ['brother', 'sister', 'father', 'mother'];
    var relationships = new Bloodhound({
      datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
      queryTokenizer: Bloodhound.tokenizers.whitespace,
      local: $.map(relationshipList, function(relationship) { return { name: relationship }; })
    });
    relationships.initialize();
    $('#bloodhound .typeahead').typeahead({
      hint: true,
      highlight: true,
      minLength: 1
    },
    {
      name: 'relationships',
      displayKey: 'name',## Heading ##
      source: relationships.ttAdapter()
    });
    alert('finished');
  }
})

当进入questionnaire.relationship 状态时,我在视图前看到了警报弹出窗口。然后带有我输入的视图正确加载,但预输入不起作用。控制台没有js错误。

我还确保 typeahead 调用在 angular-ui-router 之外使用时正常工作。

【问题讨论】:

    标签: angularjs angular-ui-router typeahead.js


    【解决方案1】:

    您是否尝试过使用 angular ui bootstrap 的 typeahead?它是为 Angular 构建的,不依赖于 JQuery

    http://angular-ui.github.io/bootstrap/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 2014-04-06
      • 2017-10-20
      • 1970-01-01
      相关资源
      最近更新 更多