如何允许一个指令从Angular Material的多个输入中被使用
How to allow one directive to be used from many inputs in Angular Material?
我有以下模板:
<md-input-container class="new-paragraph addon-menu">
<label>Post text</label>
<textarea ng-model="user.post" rows="3"></textarea>
</md-input-container>
<md-menu>
<md-button aria-label="" class="md-icon-button" ng-click="$mdOpenMenu($event)">
<i class="fa fa-plus-square-o mobile-menu-ic light-gray-text font-size-extra-large"></i>
</md-button>
<md-menu-content>
<md-menu-item ng-repeat="templateVariable in templateVariables">
<md-button ng-click="injectVariableAtCursor(templateVariable);">{{templateVariable}}</md-button>
</md-menu-item>
</md-menu-content>
</md-menu>
现在,我想插入一些预定义的文本(在光标位置)到user.post
模型,当用户点击<md-menu-content>
中的特定项目
我知道具有隔离作用域的指令可能在这里有所帮助,但我不确定如何实现这一点,因为input
和按钮本身是独立的,例如它们不是包装在单个ngModel
下。
有什么建议吗?
你不需要指令。
如果我理解你的问题,这可能就足够了:
controller:
$scope.injectVariableAtCursor = function(templateVariable) {
$scope.user.post = templateVariable;
};
这是你想要的一个例子:
var myController = function($scope) {
var target = null;
$scope.user = { post: "first" };
$scope.handleFocus = function(event) {
target = event.target;
};
$scope.handleClick = function(text) {
var start, end, actual = $scope.user.post;
if(target) {
start = target.selectionStart;
end = target.selectionEnd;
}else{
start = end = $scope.user.post.length;
}
$scope.user.post = actual.substr(0,start) + text + actual.substr(end, actual.length);
};
};
angular.module('controller', [])
.controller('myController', myController);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="controller">
<div ng-controller="myController">
<textarea ng-model="user.post" ng-focus="handleFocus($event)"></textarea>
<button ng-click="handleClick('bla')">add bla</button>
</div>
</div>
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 名称输入的索引
- 如何编写HTML输入的JS内联
- 要求输入在数据列表中
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 如何将输入(type=text)从html表单传递到javascript函数
- 单击jquery清除输入值
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- jQuery自定义验证比较多个输入的序列
- Sails.js:同时发布文本输入和一个文件
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 使用jquery在单击时在单元格中输入值
- Ajax文件加载和<输入>文件加载
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 如何允许一个指令从Angular Material的多个输入中被使用
- 如何在angular material和angular js中只显示输入字段的最后四位数字