我正在使用Code Mirror指令将文本区域格式化为代码。
什么工作:
<textarea ui-codemirror type="textarea" ng-model="x"></textarea>
您可以像这样设置选项
<textarea ui-codemirror="editorOptions" type="textarea" ng-model="x"></textarea>
在你的控制器中:
$scope.editorOptions = {
name: 'javascript',
json: true,
smartIndent: false,
tabSize: 2,
lineWrapping : true,
lineNumbers: true,
mode: 'javascript'
}
什么不起作用:
我正在尝试根据模型的另一部分动态更改 editorOptions(我支持 Javascript 和 Markdown)。
所以我正在尝试这个:
$scope.editorOptions = {
json: {
name: 'javascript',
json: true,
smartIndent: false,
tabSize: 2,
lineWrapping : true,
lineNumbers: true,
mode: 'javascript'
},
markdown: {
name: 'markdown',
json: false,
smartIndent: false,
tabSize: 2,
lineWrapping : true,
lineNumbers: true,
mode: 'markdown'
}
};
然后在 HTML 中:
<select ng-model='editorType' required ng-options='option.value as option.name for option in editorTypes'></select>
<textarea ui-codemirror="editorOptions[editorType]" type="textarea" ng-model="x"></textarea>
我的问题是-如何使用选择模型(editorType)的值来指定代码镜像指令中使用的选项对象?
我试过了
<textarea ui-codemirror="editorOptions.[editorType]" type="textarea" ng-model="x"></textarea>
<textarea ui-codemirror="editorOptions[$scope.editorType]" type="textarea" ng-model="x"></textarea>
一切都无济于事。
有谁知道这样做的正确方法是什么?
非常感谢!
更新 我相信这是正确的语法:
ui-codemirror="editorOptions[editorType]".
我认为指令没有意识到变量已更改存在问题。