如何允许用户在文本框中插入角度范围变量
How to allow users to insert angular scope variables into a text box
我有一个这样的文本区域:
<textarea ng-model="content"></textarea>
{{content}}
还有一个像这样的变量:
$scope.name = 'Billy'
我想让用户能够将变量插入文本区域,这样,如果他们输入:
Hello {{name}}
{{content}}
的输出可以是Hello Billy
我可能还想简化它,这样用户就可以在文本区域中键入类似于:Hello [Name]
的内容,并以相同的方式进行解析。
这是一个plunker。https://plnkr.co/edit/0VH106Gxz7xjhCj5NMpT?p=preview
最好把这一点写在指令中。但这里是快速而肮脏的
app = angular.module('plunkr', []);
app.controller('messages', function($scope, $interpolate){
$scope.name = 'billy';
$scope.evalText = function(msg){
console.log(msg)
$scope.message = $interpolate(msg)($scope)
}
});
如果我答对了问题,请尝试使用interpole。
代号james切中要害。但如果有人想在全球范围内使用它,他们可以扩展它来创建一个过滤器,如下所示。
<html ng-app="nameApp">
<head>
</head>
<body ng-controller="NameCtrl">
<textarea ng-init="content='Name is {{name}}'" ng-model="content"></textarea>
{{content | compile:this}}
</body>
</html>
具有以下Js:
var nameApp = angular.module('nameApp', []);
nameApp.controller('NameCtrl', function ($scope){
$scope.name = 'John';
});
nameApp.filter('compile', function($interpolate) {
return function(input, scope) {
return input ? $interpolate(input)(scope) : '';
};
})
现场演示:http://codepen.io/anon/pen/RaZpaO
相关文章:
- 将样式表插入iframe
- 正在全局范围中查找JavaScript函数
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- 如何通过数组更新角度子范围
- 如何动态插入jquery代码
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- 动态插入的表:JQuery未检测到最后一行
- 使用JavaScript动态插入DIV的成本有多高
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 将对象动态插入到现有对象中
- HTML范围:动态设置值属性
- 如何允许用户在文本框中插入角度范围变量
- Javascript 正则表达式字符范围 A-z 匹配插入符号 (“^”)
- 谷歌脚本 - 插入具有多个范围的工作表
- 如何在contenteditable中获取介于@和插入符号之间的字符范围
- 如何将幻灯片范围插入mysql
- 插入文本并将其添加到指定范围以供以后检索
- 在区域四叉树中实现插入/删除/查询范围
- 在Chrome中插入一个元素到一个范围将清除所选内容
- 在日期范围内创建的每一行插入日期,从startDate开始,递增到结束日期