首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从角的静态指令模板中访问孤立作用域属性?

如何从角的静态指令模板中访问孤立作用域属性?
EN

Stack Overflow用户
提问于 2016-10-07 07:44:56
回答 2查看 116关注 0票数 0

主计长:

代码语言:javascript
复制
app.controller('MainCtrl', ['$scope', function($scope) {
    $scope.temp = {
        'name': 'Test'
    };
}]);

模板:

代码语言:javascript
复制
<custom-field ng-model="temp.name">
    <md-input-container class="addon-menu">
        <label>Name</label>
        <input ng-model="ngModel" type="text" ng-focus="setLastFocusedElement($event)" />
    </md-input-container>
</custom-field>

指令:

代码语言:javascript
复制
app.directive('customField', function($timeout) {
   return {
       restrict: 'E',
       scope: {
           ngModel: '='
       },
       link: function($scope, $element, $attrs) {
           console.log($scope.ngModel); // prints "test"
       }
   };
});

问题是,一旦模板被呈现,我就看不到附加到input的值--它是空的,但是我希望它能工作,因为在link函数中它是正确打印的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-07 07:57:10

您正在尝试将模板中的指令作用域作为控制器的作用域访问。将标记移动到指令的模板中。

指令:

代码语言:javascript
复制
app.directive('customField', function($timeout) {
return {
   restrict: 'E',
   scope: {
       ngModel: '='
   },
   link: function($scope, $element, $attrs) {
       console.log($scope.ngModel); // prints "test"
   },
   template: '<md-input-container class="addon-menu"><label>Name</label><input ng-model="ngModel" type="text" ng-focus="setLastFocusedElement($event)" /></md-input-container>'
};

模板:

代码语言:javascript
复制
<custom-field ng-model="temp.name"></custom-field>

您还可以使用单独的html文件作为指令模板,这是很好的实践。

票数 1
EN

Stack Overflow用户

发布于 2016-10-07 07:54:10

您是否试图查看控制器中的值?

请尝试$parent.$scope来查看值是否存在。

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

https://stackoverflow.com/questions/39912051

复制
相关文章

相似问题

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