发布
社区首页 >问答首页 >将Ng-Model值传递给指令

将Ng-Model值传递给指令
EN

Stack Overflow用户
提问于 2019-08-12 19:09:46
回答 1查看 72关注 0票数 0

我看过前面的答案,但我不确定它们是否是我需要的答案。

我有一个指令,我们称它为"selectValue“。一个值可以有一个默认值,我们称它为"$scope.default“。

该指令在一个地方将如下所示:

代码语言:javascript
代码运行次数:0
复制
<select-value ng-model="data.input" controlId="inputSelector" />

但在另一种情况下,它看起来像这样:

代码语言:javascript
代码运行次数:0
复制
<select-value ng-model="myValue" controlId="inputSelector" />

我不能选择使ng-model输入相同;它们在不同的地方使用,这是一个遗留代码库。

以下是该指令的定义:

代码语言:javascript
代码运行次数:0
复制
    .directive('selectValue', ['$timeout', function($timeout) {

    const directive = {
        restrict: 'E',
        scope: {
            controlId: '@',  
            model: '=?'
        },
        controller: 'selectValueCtrl',
        template: '<input id="{{controlId}}" name="{{controlId}}" placeholder="Enter Value" type="text" ng-model="model" />'
    };

    return directive;
}

问题:我该怎么做才能在模型的“<select-value>”属性中输入不同的输入,让它访问不同的作用域变量?

编辑:引用的“重复”问题指的是设置ng-click的值,而不是引用表单控件中的ng-model。

EN

回答 1

Stack Overflow用户

发布于 2019-08-13 23:38:08

据我所知,它看起来像是您试图传递预设值的默认值。您面临的问题是,您的select-value元素正在使用ng-model指令来尝试传递数据,而您的指令中的绑定是'model‘。

要解决此问题,只需将“ng-model”更改为“model”,您的绑定就会正常工作。

最后,您的元素应该如下所示:

代码语言:javascript
代码运行次数:0
复制
<select-value model="myValue" controlId="inputSelector" />

与此相对的是:

代码语言:javascript
代码运行次数:0
复制
<select-value ng-model="myValue" controlId="inputSelector" />
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57460074

复制
相关文章

相似问题

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