Angular 2 için uygulamanızı hazırlayan bileşenlere dönüştürme denetleyicileriyle ilgili bir sorunla karşı karşıyayım, ancak sorun iyi gitmiyorsa sorun, ui yönlendiriciye sahip olacağım devletler arasında ve birkaç denetleyicide çözümü kullanarak, denetleyicili sürüm çalışıyor ancak bileşenlerin sürümü artık çalışıyor, çok sayıda kılavuz izledim ve kod için iyi yapıyorum ama benim için çalışmıyor.UI-yönlendirici ile Angular 1.5 bileşenleri: Bilinmeyen sağlayıcı
(function() {
'use strict';
angular
.module('app.sample', [])
.config(config);
/** @ngInject */
$stateProvider
.state('app.sample', {
url : '/sample',
views : {
'[email protected]': {
templateUrl: 'app/main/sample/sample.html',
controller : 'SampleController as vm'
}
},
resolve: {
SampleData: function (myService) {
return myService.getSample(); // I return a promise here
}
}
});
}
})();
Kontrol:
I kontrol ile modülü aşağıdakilere sahip
Yukarıdaki kod iyi çalışan, ama bir bileşen olarak yaptıktan sonra(function()
{
'use strict';
angular
.module('app.sample')
.controller('SampleController', SampleController);
/** @ngInject */
function SampleController(SampleData)
{
var vm = this;
vm.helloText = SampleData.data.helloText;
}
})();
onun şu şekilde olsun:
(function() {
'use strict';
angular
.module('app.sample', [])
.config(config);
/** @ngInject */
function config($stateProvider) {
// State
$stateProvider
.state('app.sample', {
url: '/sample',
views: {
'[email protected]': {
template: '<sample></sample>'
}
},
resolve: {
SampleData: function (myService) {
return myService.getSample(); // I return a promise here
}
}
});
}
})();
Bileşen: şimdi
(function() {
'use strict';
angular
.module('app.sample')
.component('sample', {
templateUrl: 'app/main/sample/sample.html',
bindings: {
},
controller: Sample
});
/** @ngInject */
function Sample(SampleData) {
var $ctrl = this;
$ctrl.helloText = SampleData.data.helloText;
}
})();
Ama onun çalışma ve bana aşağıdaki hatayı veriyor değil:
"dependencies": {
"angular": "1.5.7",
"angular-animate": "1.5.7",
"angular-aria": "1.5.7",
"angular-cookies": "1.5.7",
"angular-material": "1.1.0-rc.5",
"angular-messages": "1.5.7",
"angular-resource": "1.5.7",
"angular-sanitize": "1.5.7",
"angular-ui-router": "1.0.0-beta.1",
"jquery": "2.2.4",
"mobile-detect": "1.3.2",
"moment": "2.13.0"
}
:
bower.json iç
Error: [$injector:unpr] Unknown provider: SampleDataProvider <- SampleData
http://errors.angularjs.org/1.5.7/$injector/unpr?p0=SampleDataProvider%20%3C-%20SampleData
at angular.js:68
at angular.js:4502
at Object.getService [as get] (angular.js:4655)
at angular.js:4507
at getService (angular.js:4655)
at injectionArgs (angular.js:4679)
at Object.invoke (angular.js:4701)
at $controllerInit (angular.js:10234)
at nodeLinkFn (angular.js:9147)
at angular.js:9553
Benim bağımlılıkları
Sorun ne, fikrim ne? Bunun yerine yukarıda gibi vermenin
Dizin.html içinde SampleData hizmetini içeren js'nin olduğunu doğrulayabilir misiniz? – gyc
@gyc zaten js dosyası yazıyor, henüz ts'ye taşınmamış, hala açısal 1.5 kullanarak ts ile ikinci aşamaya hazırlanıyor, ve denetleyicide 'myService' kullanabilirsiniz, SampleData bağımsız servis hizmeti değil, bir değişken Modül ve modülde görebileceğiniz gibi modül içinde çözüldü. –