【发布时间】:2017-12-06 15:36:57
【问题描述】:
我想了解如何执行以下操作,他们让我尝试在控制器中创建一个函数,而不是在视图中编写代码。
代码是:
<div class="row">
<div class="col-xs-12 max300"
uib-dropdown is-open="vm.descriptionDropdownOpen">
<textarea name="description" class="form-control"
ng-model="vm.presence.description"
ng-click="vm.toggleDescriptionDropdown()"
autofocus>
</textarea>
<ul id="descriptionDropdown" uib-dropdown-menu>
<li ng-repeat="descr in vm.loadedDescriptions"
ng-click="vm.presence.description = descr.text;
vm.descriptionDropdownOpen = false;">
{{descr.text}}
</li>
</ul>
</div>
</div>
所以基本上这会创建一个文本框,当你点击它时,会出现一个下拉菜单,如果你点击下拉菜单的一个字符串,该字符串将被放入文本框中。
我需要做的是创建一个将放在控制器中的函数,这样我们就可以在视图中调用该函数并保持代码更好。
这个函数只需要做我上面贴的代码的最后一部分,从下拉菜单中把我点击的字符串放到文本框中!
这真的很简单,但随着我的学习,我不太确定应该如何编写它
setDescription(text: string) {
// code should go here.
}
抱歉这个愚蠢的问题,只是想确保正确理解我在做什么!谢谢你
【问题讨论】:
-
您的视图代码还没有做同样的事情吗?
ng-click="vm.presence.description = descr.text; -
是的!但是在我学习的过程中,他们问我如何在控制器中使用一个函数来实现这一点,以保持视图中的代码干净!!