Конфигурация ui-router выглядит так:
var homeAccess = {
name: 'home.access',
url: 'Access',
templateUrl: 'app/access/partials/webapi.html',
controller: [
'$scope',
'accessService',
'testService'
function (
$scope,
accessService: IAccessService
testService: ITestService) {
$scope.ac = accessService;
$scope.ts = testService;
}]
};
В моем HTML я затем использую accessService и testSaervice следующим образом:
<input ng-model="ac.statusText" />
<input ng-model="ts.Text" />
Насколько я понимаю, было бы лучше, если бы я не использовал $ scope. Так может кто-нибудь сказать мне, как я мог бы реализовать это, не используя $ scope?
Я действительно не вижу смысла, если у вас нет законных причин для исключения $scope
(см. AngularJS - Зачем использовать "Контроллер как vm"?). При этом вы всегда можете использовать контроллер как выражение...
controller: ['accessService', 'testService', function(accessService, testService) {
this.ac = accessService;
this.ts = testService;
}],
controllerAs: 'homeAccess' // or whatever you want to call it
и в вашем шаблоне
<input ng-model="homeAccess.ac.statusText">
<input ng-model="homeAccess.ts.Text">
Имейте в виду, что это все еще использует область видимости, связывая экземпляр вашего контроллера с $scope
как выражение controllerAs
.
$scope
?