首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从父控制器访问指令变量

从父控制器访问指令变量
EN

Stack Overflow用户
提问于 2015-10-26 12:06:10
回答 2查看 420关注 0票数 0

我有个案子是用剑道编辑的。

第一控制器

代码语言:javascript
复制
app.controller('FirstController', ['$scope', function($scope) {
  $scope.Html = "<div> Hello World</div>";
}

第二控制器在中的应用

代码语言:javascript
复制
app.controller('SecondController', ['$scope', function($scope) {
 $scope.Options= [{Options1, Option2}];
}

指令

代码语言:javascript
复制
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 )

代码语言:javascript
复制
<div ng-controller="SecondController">
<textarea kendo-editor k-ng-model="documentName" k-encoded="false" k-     
options="{{Options}}"></textarea>
 </div>

页面HTML (在这里我使用FirstController)

代码语言:javascript
复制
<div ng-controller="FirstController" class="col-md-8">
    <div html-editor="HtmlEditor"
         document-name="Html">
    </div>
</div>

现在,如果对html做一些更改,并将hello world中的文本更改为"Hello Every“,我得到的值是相同的,

代码语言:javascript
复制
  $scope.Html = "<div> Hello World</div>";

JSFiddle的例子是https://jsfiddle.net/aqdasiftekhar/HB7LU/19160/

EN

回答 2

Stack Overflow用户

发布于 2015-10-26 12:55:09

在这里,您的代码的一个工作示例在这里是有用的,但乍一看,问题是:

代码语言:javascript
复制
k-ng-model="documentName"

你可能是说:

代码语言:javascript
复制
k-ng-model="{{documentName}}"

这将导致documentName被解析为Html,从而将textarea绑定到$scope.Html。

票数 0
EN

Stack Overflow用户

发布于 2015-10-26 15:03:43

所以在挣扎了很久之后,

我通过更改父(SecondController)父(指令的范围)父对象(FirstController)对象来修正模板文件中的k-ng模型。

TemplateEditor.html中更改以下代码

代码语言:javascript
复制
<div ng-controller="SecondController">
 <textarea kendo-editor k-ng-model="documentName" k-encoded="false" k-     
 options="{{Options}}"></textarea>
</div>

代码语言:javascript
复制
<div ng-controller="SecondController">
   <textarea kendo-editor k-ng-model="$parent.$parent.$parent.Html" k-  
   encoded="false" k-options="{{Options}}"></textarea>
</div>

在上述更改之后,I不需要指令中定义的变量

代码语言:javascript
复制
scope: {
        documentName: "="
},

感谢你们所有试图帮助我的人:-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33345362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档