问题描述
<div>
<div class="c-select u-margin-b-15" ng-if="!vm.areLastOptionsToSelect">
<select class="form-control"
ng-model="vm.selectedOption"
ng-options="option.text for option in vm.options track by option.value">
</select>
</div>
<my-component ng-if="vm.hasSelectedOptionChildren"
i-options="vm.selectedOption.childNodes"
i-model="vm.selectedOption"></my-component>
</div>
输入是像这样的集合:
[
{
"prop1":1,"childNodes":[
{
"prop1":11,"childNodes":[
]
},{
"prop1":12,"childNodes":[
]
}
]
},{
"prop1":2,"childNodes":[
{
"prop1":21,{
"prop1":22,{
"prop1":23,"childNodes":[
]
}
]
}
]
我从控制器视图调用我的指令
<my-component i-options="options" i-model="form.selectedConfig"></my-component>
我想接收 form.selectedConfig
的最新可能选择值。我的意思是 - 当没有 childNodes
并且当前选择的值是所需的值时,对我来说最新的是值。如果有一些 childNodes
,那么用户应该从 childNodes
等中选择一些内容
问题 - 我无法仅使用 ng-model
获得最后选择的值。我可以使用 watchers
和 events
在我的指令中:
this.$scope.$watch(() => { return this.selectedOption; },() => {
if (this.selectedOption && !this.selectedOption.hasChildNodes) {
this.$scope.$emit('$myEvent',this.selectedOption);
}
else {
this.$scope.$emit('$myEvent',null);
}
},true);
在控制器中:
$scope.$on('$myEvent',(event,option) => {
$scope.form.selectedConfig = option;
});
我不喜欢这种方法,因为我需要知道事件名称并将其添加到我的控制器中。
是否有其他解决方案可以使此工作正常进行?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)