TypeError:s.position不是angularjs中提前输入的函数

时间:2019-02-03 05:05:14

标签: angularjs typeahead.js ui.bootstrap

在将其应用到我的实时项目之前,我只想实现一个预输入示例。 每个示例在其网站上都可以正常运行,但对我而言却不起作用。

我已经完成:

<input id='itemInput' type="text" ng-model="item" placeholder="Item Name" typeahead="item as item.Index for item in states | filter:$viewValue" class="form-control">

模板:

<ul class="dropdown-menu" ng-show="isOpen() && !moveInProgress" ng-style="{top: position().top+'px', left: position().left+'px'}" role="listbox" aria-hidden="{{!isOpen()}}">
    <li class="uib-typeahead-match" ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index, $event)" role="option" id="{{::match.id}}">
        <div uib-typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>
    </li>
</ul>
  

附加:

var app = angular.module('MascoDyeing', ["ngRoute", "ngMaterial", "md.time.picker", 'long2know',
    'ngSanitize',
    'ui.bootstrap',
    'ui.bootstrap.typeahead',
    'ui.router',
    'ngRoute',
    'ui']);
  

脚本

<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.12.0.js"></script>

任何建议都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

这是模板中的 ng-style-part:

ng-style="{top: position().top+'px', left: position().left+'px'}"

在某些情况下,位置是一个对象而不是一个函数。 您可以尝试以这种方式解决它:

ng-style="{top: (position.top || position().top)+'px', left: (position.left || position().left)+'px'}"