0
私は、Meteor 1.3の2つの異なるコンポーネント間でコードを共有するためのサービスを作成しようとしてきましたが、これまでには驚くほど成功していません。 Angular 1サービスの作成と注入は機能していないようです。私はカントは、コンポーネントに注入されたサービスを受けることができるように思われるMeteor-Angular 1.5サービスが動作しない
class Login {
constructor($scope, $reactive, $state, myService) {
console.log(myService.somevariable) //doesn't work
}
}
// create a module
export default angular.module(name, [
angularMeteor
]).component(name, {
templateUrl: 'imports/ui/components/${name}/${name}.html',
controllerAs: name,
controller: Login
});
:私は、ログインコンポーネントとても似てい
angular.module(name).service("myService", function() {
this.somevariable = 'somevalue';
});
:
私は角度サービスとても似ています。私は間違って何をしていますか?SOLUTION:
私は正規表現を使用して電子メールアドレスを検証するためのサービスを必要としていました。私はこのようにそれをやった:
import angular from 'angular';
import angularMeteor from 'angular-meteor';
class Validator {
validateEmail(email) {
var re = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
}
const name = 'validator';
// create a module
export default angular.module(name, [
angularMeteor
])
.service("Validator", Validator);
私はそのようにのようなサービスを注射さ:
import {name as Validator} from '../../../api/services/validator'
class Login {
constructor($scope, $reactive, $state, Validator) {
'ngInject';
this.$state = $state;
$reactive(this).attach($scope);
this.Validator = Validator;
}
login() {
if(this.Validator.validateEmail(this.credentials.email)) {
// email is valid.
}
}
}
const name = 'login';
export default angular.module(name, [
angularMeteor,
Validator
]).component(name, {
templateUrl: `imports/ui/components/${name}/${name}.html`,
controllerAs: name,
controller:Login
})
・ホープ、このことができます:)
正しく注入されていますか?あなたのコードはすべてここで共有しましたか?サンプルに注入するコードがありません。 –
'$ state'、' $ reactive'、 '$ scope'は完全に動作しています。私は 'UserService'を注入し、そのメソッド' getStuff() 'を使いたいと思います。 – lostsoul29