gpt4 book ai didi

angularjs - 从指令内访问其他元素的 ng-model

转载 作者:行者123 更新时间:2023-12-03 07:03:10 25 4
gpt4 key购买 nike

我有一个指令应该更新另一个输入。

但是,我无法找到从指令内访问其他输入的 ng-model 的方法

accessOther指令

angular.module('test', [])
.directive('accessOther', function() {
return {
require: '?ngModel',
link: function(scope, elem, attr, ngModel) {
// ngModel here only refers to the current input
ngModel.$setViewValue('test');

// how to get access/modify another input? (ie. #outside)
}
}
})
.controller('parentController', function() {
var pc = this;
pc.data = {};
})
.controller('nestedController', function() {
});

在下面的代码中,accessOther指令位于#current中,但试图更改#outside

<body ng-app="test" ng-controller="parentController as pc">
<input type="text" ng-model="pc.data.parent" id="parent" placeholder="parent">

<div ng-controller="nestedController as nc">
<input type="text" ng-model="pc.data.outside" id="outside" placeholder="outside">
<br>
<input type="text" ng-model="pc.data.current" id="current" access-other placeholder="current">
</div>
</body>

plnkr: http://plnkr.co/edit/j34GKypDW4h6sZgsMCaA?p=preview

此外,是否也可以在指令中更改#parent

最佳答案

请检查工作演示:Plunker .

将其添加到指令中:

scope.$parent.pc.data.outside = 'changed `outside` from directive';
scope.$parent.pc.data.parent = 'changed `parent` from directive';

您可以使用指令范围对象上的 $parent 属性访问父范围

关于angularjs - 从指令内访问其他元素的 ng-model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32498221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com