2015-04-04 2 views
0

Я создаю сайт в угловом формате вместе с requirejs, используя машинопись. я получил это работает до точки, где я могу загрузить мои контроллеры асинхронно и установить variabele в объеме, который будет держать мой контроллер:Angularamd в машинописном контроллере, зарегистрированном

///<reference path="./../typings/tsd.d.ts" /> 
import App = require("../Start"); 

App.application.app.register.controller("AppController",($scope: ng.IScope) => { 
    $scope["vm"] = new AppController($scope); 
}); 


class AppController { 

    public test: string = "tedast"; 
    constructor(scope: ng.IScope) { 

    } 
} 

, который компилируется в JavaScript следующим образом:

define(["require", "exports", "../Start"], function (require, exports, App) { 
    App.application.app.register.controller("AppController", function ($scope) { 
     $scope["vm"] = new AppController($scope); 
    }); 
    var AppController = (function() { 
     function AppController(scope) { 
      this.test = "tedast"; 
     } 
     return AppController; 
    })(); 
}); 

И в моем viewtemplate я могу получить доступ к тесту variabele как так

{{ vm.test }} 

Как вы можете видеть, у меня есть префикс все с «ВМ». и он начинает чувствовать себя немного неэффективным. Я хотел бы знать, можно ли просто привязать контроллер в машинописном виде к представлению напрямую, поэтому мне не нужно сохранять его в области и префикс его с помощью vm.

я попытался просто:

<div ng-controller="AppController"> 
     {{ test }} 
</div> 

Но выдает ошибку, что не может найти AppController когда мой взгляд нагрузки.

ответ

0

Я знаю его. Попробуйте зарегистрировать контроллер после класса AppController.

///<reference path="./../typings/tsd.d.ts" /> 
import App = require("../Start"); 


class AppController { 

    public test: string = "tedast"; 
    constructor(scope: ng.IScope) { 

    } 
} 

App.application.app.register.controller("AppController",($scope: ng.IScope) => { 
    $scope["vm"] = new AppController($scope); 
}); 
Смежные вопросы