angularjs选择ng-click事件不会扩展控件

时间:2014-04-22 06:57:51

标签: angularjs select angularjs-ng-click

我正在尝试在ng-click事件上动态加载select标签的选项集。单击展开箭头会触发ng-click事件。由于我在该点获取数据并绑定到select控件,因此angularjs以某种方式省略了expand事件,select不会扩展。用户必须再次单击箭头以查看动态加载选项的结果。

如何在加载选项时确保一次性正确展开选择?

我试图找到一种在加载完成时动态扩展select的方法,但是afaik没有跨浏览器的方式来实现它。

这是代码,正在调用onclick检索方法来获取并将数据绑定到select。但是点击不会扩展控件...

<div style="position: relative;">
    <input type="text" class="inputTextFieldCell"
           style="width: 215px; position: relative; top: 0; left: 0; z-index: 2; padding: 0; margin: 0;"
           ng-model="subscriptionResource.Value" />

    <select class="optionsCellInput selectTextFieldCell"
            style="width:240px;position: absolute; top: 0; left: 0; padding: 0; margin: 0;"
            ng-click="resources.retrieve(subscriptionResource, $event)"
            ng-model="item" ng-options="resource as resource.Serial for resource in subscriptionResource.resourceList"
            ng-change="selectChange(subscriptionResource, item)" >     
    </select>
</div>

使用Javascript:

$scope.resources = {
    retrieve: function (resource, event) {
        if (resource.resourceList == null) {
            var reqDataRetrieveResources = { "request": null };
            reqDataRetrieveResources = window.createRequest(window.definitions.messages.RetrieveResourceRequest, reqDataRetrieveResources);
            reqDataRetrieveResources.request["ResourceType"] = 1;
            reqDataRetrieveResources.request["SearchCount"] = 5;

            $http.post(window.definitions.url, reqDataRetrieveResources).success(function (result) {
                if ((result.d !== null) && (result.d.Resources !== null)) {
                    resource.resourceList = result.d.Resources;
                    return true;
                }
            });

            return true;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

尝试使用ng-mousedown代替ng-click。如果它不起作用,请在绑定数据后尝试调用$scope.$apply