页面上多次使用相同的指令,始终采用最后一个模型值

时间:2018-11-19 10:52:54

标签: angularjs angularjs-directive angularjs-scope isolate-scope

我试图在每个标签旁边添加一个复制图标以复制文本,我的代码如下所示。我将每个标签的模型值作为指令的输入传递。

当我单击复制图标时,总是最后一个模型值显示原因吗?

隔离范围正在工作。但是,我想知道内部发生了什么。

请详细解释。

public void verify_validatation_message() {
    MobileElement message = (MobileElement) driver.findElementByXPath("//XCUIElementTypeOther[@name=\"label_2\"])[62]/XCUIElementTypeOther");
    String validation_message = message.getText();
    Assert.assertEquals("I can see you've put a term of 45 years", validation_message);
}
function copytext() {
    var directive = {
        restrict: 'EA',
        template: `
                 <i class="imd imd-content-copy  cursor-pointer"
                    ng-click="click()" ></i>
        `,
        link: function(scope, ele, attrs) {
            scope.click = function() {
                    alert(attrs.data)
            };
        }
    };
    return directive;
}

1 个答案:

答案 0 :(得分:0)

<label>Job No</label>: {{vm.jobInfo.jobNumber}}
<copytext data="{{vm.jobInfo.jobNumber}}" onclick="<attr.data=referencevalue>"></copytext>

<label>Customer </label>: {{vm.jobInfo.customerCode}}
<copytext data="{{vm.jobInfo.customerCode}}" onclick="<attr.data=referencevalue>"></copytext>

<label>Reference</label>: {{vm.jobInfo.reference}}
<copytext data="{{vm.jobInfo.reference}}" onclick="<attr.data=referencevalue>"></copytext>

@georgeawg,以上只是伪代码,不要考虑其语法。最后一个html元素数据属性是引用,因此上述所有元素单击处理程序也都引用了。.