首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态NgModel名称

动态NgModel名称
EN

Stack Overflow用户
提问于 2013-09-03 06:54:24
回答 1查看 204关注 0票数 0

我正在编写一个指令,该指令在获取邮政编码的系统中被重用。

代码语言:javascript
复制
//postcode grabber
app.directive('postcodes',
    function ($rootScope, $http) {
        return function (scope, element, attrs) {
            element.bind('change', function () {
                var modal_element = angular.element('#myModal');
                var ctrl = modal_element.controller();
                var url = '/postage/postcodes/?suburb=' + element.val() + "&target_suburb=" + attrs.targetSuburb + "&target_state=" + attrs.targetState + "&target_postcode=" + attrs.targetPostcode;
                ctrl.setModal(url);
                modal_element.modal('show');
            });
        };
    });

它在change上打开了一个引导模式窗口,该窗口有一个控制器:

代码语言:javascript
复制
function PostcodesCtrl($scope, $parse) {
    $scope.populate = function (suburb, state, postcode, target_suburb, target_state, target_postcode) {
        //lets grab the controller of the target postcode
        var tpscope = angular.element(target_postcode).scope();
    }
}
PostcodesCtrl.$inject = ['$scope', '$rootScope'];

我甚至可以使用输入元素"ID“(eg.#suburb)访问目标输入字段( tpscope行)的作用域,但是我不确定如何更新ngModel值,因为它们总是不同的名称。

这就是为什么我要将target_suburb、target_postcode等发送到服务器,然后服务器进行ng单击,将它们返回给"populate“函数。

可以动态访问作用域变量吗?像$scopewhatever..。或者类似的?

更新:我想我可以访问$scopevar没有问题,但是ng模型的名称将有一个小数点.例如"model.suburb“--它似乎不像那样。

如果有人对如何做这件事有更好的想法,请告诉我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-03 10:00:42

对于ngModel值和.,需要特殊处理才能直接解析并使用它。您需要使用$parse服务在作用域的上下文中处理模型。有点像

代码语言:javascript
复制
 var getter=$parse(attrs.ngModel);
 var setter=getter.assign;
 setter(scope,!getter(scope));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18585924

复制
相关文章

相似问题

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