我有个案子是用剑道编辑的。
第一控制器
app.controller('FirstController', ['$scope', function($scope) {
$scope.Html = "<div> Hello World</div>";
}第二控制器在中的应用
app.controller('SecondController', ['$scope', function($scope) {
$scope.Options= [{Options1, Option2}];
}指令
app.directive('htmlEditor', ['$http', function($http) {
return {
restrict: 'EA',
replace: true,
scope: {
documentName: "="
},
link: function (scope, element, attr) {
$http.get("ngview/TemplateEditor.html")
.success(function (data) {
element.html($compile(data)(scope));
});
}
}
}]);TemplateEditor.html (我在模板中使用SecondController )
<div ng-controller="SecondController">
<textarea kendo-editor k-ng-model="documentName" k-encoded="false" k-
options="{{Options}}"></textarea>
</div>页面HTML (在这里我使用FirstController)
<div ng-controller="FirstController" class="col-md-8">
<div html-editor="HtmlEditor"
document-name="Html">
</div>
</div>现在,如果对html做一些更改,并将hello world中的文本更改为"Hello Every“,我得到的值是相同的,
$scope.Html = "<div> Hello World</div>";JSFiddle的例子是https://jsfiddle.net/aqdasiftekhar/HB7LU/19160/
发布于 2015-10-26 12:55:09
在这里,您的代码的一个工作示例在这里是有用的,但乍一看,问题是:
k-ng-model="documentName"你可能是说:
k-ng-model="{{documentName}}"这将导致documentName被解析为Html,从而将textarea绑定到$scope.Html。
发布于 2015-10-26 15:03:43
所以在挣扎了很久之后,
我通过更改父(SecondController)父(指令的范围)父对象(FirstController)对象来修正模板文件中的k-ng模型。
在TemplateEditor.html中更改以下代码
<div ng-controller="SecondController">
<textarea kendo-editor k-ng-model="documentName" k-encoded="false" k-
options="{{Options}}"></textarea>
</div>到
<div ng-controller="SecondController">
<textarea kendo-editor k-ng-model="$parent.$parent.$parent.Html" k-
encoded="false" k-options="{{Options}}"></textarea>
</div>在上述更改之后,I不需要指令中定义的变量
scope: {
documentName: "="
},感谢你们所有试图帮助我的人:-)
https://stackoverflow.com/questions/33345362
复制相似问题