【发布时间】:2016-10-21 05:38:25
【问题描述】:
in this plunk我已经为我上周面临的问题做了一个演示。代码 sn-p 包含引导选项卡,其中包括两个不同的页面 - page1 和 page2 并且它们使用 same 控制器。 Page1 有 ng-repeat,当我们从那里点击选项时,它会在控制器函数 vm.edit(selected_variable) 中被命中,并且 Page2 有一个简单的输入框,其中有一个 ng-model=" vm.name”。我的问题是当 vm.edit 函数更新它时,ng-name 没有更新或替换为该值。我可以使用 rootScope 解决这个问题,但我不想使用 rootScope。我只是想避免 rootScope 并想使用 vm。
我的代码示例:
第 1 页:
<div ng-controller="appCtrl as vm">
<div>
<ul>
<li ng-repeat="list in vm.list track by $index">
<button type="button" class="btn-u btn-brd btn-u-none" ng-click="vm.edit(list, $index)" data-toggle="tab" href="#page2">
{{ list.name }}
</button>
</li>
</ul>
</div>
</div>
第 2 页:
<div ng-controller="appCtrl as vm">
<input type="text" ng-model="vm.name">
</div>
控制器:
vm.edit = function(listItem, index) {
vm.name = listItem.name;
console.log(vm.name);
};
编辑功能会更新 page1 中的 vm.name,但不会反映在 page2 中。无法解决这个问题,有什么想法吗?
【问题讨论】:
标签: javascript angularjs twitter-bootstrap