ben bu uygulamada ngMaterial kullanmaya çalışıyorum:
Bower.json dosyası:
{
"name": "x",
"version": "0.0.0",
"description": "x",
"dependencies": {
"bootstrap": "~3",
"angular": "~1.4.7",
"angular-resource": "~1.4.7",
"angular-animate": "~1.4.7",
"angular-mocks": "~1.4.7",
"angular-bootstrap": "~0.13",
"angular-ui-utils": "bower",
"angular-ui-router": "~0.2",
"angular-file-upload": "1.1.5",
"angular-material": "~0.11.4"
},
"resolutions": {
"angular": ">= 1.0.2"
}
}
yapılandırma JS dosyası:
module.exports = {
client: {
lib: {
css: [
'public/lib/bootstrap/dist/css/bootstrap.css',
'public/lib/bootstrap/dist/css/bootstrap-theme.css',
'public/lib/bootstrap/dist/css/angular-material.css'
],
js: [
'public/lib/angular/angular.js',
'public/lib/angular-aria/angular-aria.js',
'public/lib/angular-resource/angular-resource.js',
'public/lib/angular-animate/angular-animate.js',
'public/lib/angular-material/angular-material.js',
'public/lib/angular-ui-router/release/angular-ui-router.js',
'public/lib/angular-ui-utils/ui-utils.js',
'public/lib/angular-bootstrap/ui-bootstrap-tpls.js',
'public/lib/angular-file-upload/angular-file-upload.js'
],
Uygulaması yapılandırma:
// Init the application configuration module for AngularJS application
var ApplicationConfiguration = (function() {
// Init module configuration options
var applicationModuleName = 'x';
var applicationModuleVendorDependencies = ['ngResource', 'ngAnimate', 'ui.router', 'ui.bootstrap', 'ui.utils', 'angularFileUpload', 'ngMaterial'];
// Add a new vertical module
var registerModule = function (moduleName, dependencies) {
// Create angular module
angular.module(moduleName, dependencies || []);
// Add the module to the AngularJS configuration file
angular.module(applicationModuleName).requires.push(moduleName);
};
return {
applicationModuleName: applicationModuleName,
applicationModuleVendorDependencies: applicationModuleVendorDependencies,
registerModule: registerModule
};
})();
Ve sonra: aşağıda gibi modülünde animasyon ngMaterial, $ mdToast başvuru deneyin ya $ iken
// Use Application configuration module to register a new module
ApplicationConfiguration.registerModule('core');
ApplicationConfiguration.registerModule('core.admin', ['core']);
ApplicationConfiguration.registerModule('core.admin.routes', ['ui.router']);
O başarısız olur. Aşağıdaki referanslar olmadan html md-referansları üzerinde herhangi bir hata yoktur, sadece düzgün çalışmazlar ('maddi' işlevler olmadan gösterileceklerdir).
Kontrol JS dosyası:
angular.module('core').controller('HeaderController', ['$scope', '$state', 'ngMaterial', 'Authentication', 'Menus',
function ($scope, $state, Authentication, Menus) {
// Add '$mdToast', '$animate', $mdToast, $animate and the same error results
hata Atar:
Error: [$injector:unpr] Unknown provider: ngMaterialProvider <- ngMaterial <- HeaderController
http://errors.angularjs.org/1.4.7/$injector/unpr?p0=ngMaterialProvider%20%3C-%20ngMaterial%20%3C-%20HeaderController
at http://localhost:3000/lib/angular/angular.js:68:12
at http://localhost:3000/lib/angular/angular.js:4289:19
at Object.getService [as get] (http://localhost:3000/lib/angular/angular.js:4437:39)
at http://localhost:3000/lib/angular/angular.js:4294:45
at getService (http://localhost:3000/lib/angular/angular.js:4437:39)
at Object.invoke (http://localhost:3000/lib/angular/angular.js:4469:13)
at extend.instance (http://localhost:3000/lib/angular/angular.js:9136:34)
at nodeLinkFn (http://localhost:3000/lib/angular/angular.js:8248:36)
at compositeLinkFn (http://localhost:3000/lib/angular/angular.js:7680:13)
at publicLinkFn (http://localhost:3000/lib/angular/angular.js:7555:30) <header data-ng-include="'/modules/core/views/header.client.view.html'" class="ng-scope" data-ng-animate="1">
Teşekkür ederim, ngMaterial oraya referans verilmemeli ve direktifler onsuz çalışıyor olmalı? Direktifleri kullanmadan önce başka bir adımı kaçırıyor muyum? Başlangıçta sadece '$ mdToast', '$ animate' referansını kullandım ve aynı hataları attılar - orada olmalılar mı? Hızlı yanıt için çok teşekkür ederim! – nayelo
Uygulamanızın modül bağımlılıklarına 'ngMaterial' ekledikten sonra, direktifinize $ mdToast'ı enjekte edebilirsiniz. –
Ah, teşekkürler! ngMaterial, uygulama yapılandırmasında (yukarıda eklenmiştir) başvuruda bulunur, ancak açık bir şekilde çalışmayan bir şey vardır. Çok net bir açıklama için tekrar teşekkürler. – nayelo