2016-01-10 4 views
0

В приведенном ниже коде,данных не связывается с точки зрения

<!DOCTYPE html> 
    <html> 
     <head> 
      <meta charset="UTF-8"> 
      <title>Controller</title> 
      <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.20/angular.js"></script> 
      <script type="text/javascript"> 
       var app = angular.module("sample", []); 
       app.controller("emp", function(){ 
         this.Name = "jag"; 
        }); 
      </script> 
     </head> 
     <body ng-app="sample"> 
      <div ng-controller="emp"> 
       Hello {{Name}} 
      </div> 

     </body> 
    </html> 

{{ Name }} выражение не вычисляется.

1) Как проверить, привязана ли модель $scope к div шаблону?

2) Я узнал, что область видимости находится в DOM. Экземпляр контроллера создается с помощью директивы ng-controller="emp". Могу ли я получить доступ к контроллеру (emp) экземпляра и $scope через DOM?

ответ

2

Используйте controller as, если вы используете this вместо $scope. Controllers как classes, мы initializing их (var student = new Student()) используя controller as синтаксис.

var app = angular.module("sample", []); 
 
app.controller("emp", function() { 
 
    this.Name = "jag"; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<body ng-app="sample"> 
 
    <div ng-controller="emp as e"> 
 
    Hello {{e.Name}} 
 
    </div> 
 

 
</body>

+0

я узнал, что сфера сидит в DOM прикреплена к элементу ('div'). Экземпляр контроллера создается с помощью директивы 'ng-controller =" emp "'. Могу ли я получить доступ к экземпляру контроллера ('emp') и' this.Name' через DOM? – overexchange

+0

Да! экземпляр контроллера будет создан, но элементы будут привязаны к '$ scope', если' controller as' не используется. Вы можете сравнить сценарий с «примером ученика». Вы можете иметь дело с контекстом 'this' в конструкторе и можете использовать' свойства и методы' класса со ссылкой на переменную, используя какой класс инициализируется .. Обратитесь к этому, если вы предполагаете использовать '$ scope' => https://jsfiddle.net/p0jLkkbn/ – Rayon

+0

Я искал этот ответ http://stackoverflow.com/a/17962487/3317808 – overexchange

Смежные вопросы