zuzugreifen Ich bin neu in eckigen und stecken in einem konzeptionellen Problem. Ich kann in der "helloWorld" -Direktive nicht auf den "Spiel" -Dienst zugreifen.Nicht in der Lage, auf den Dienst in der Direktive in eckigen
erwartet = Name: WarCraft
Ist = Name:
Hier ist meine js und html-Datei:
JS-Code:
var app = angular.module("app",[]);
app.provider("game", function() {
var type;
return {
setType: function (value) {
type = value;
},
$get: function() {
return {
title: type + "Craft"
};
}
};
});
app.config(function (gameProvider) {
gameProvider.setType("War");
});
app.controller("AppCtrl", function ($scope,game) {
$scope.title = game.title;
});
app.directive('helloWorld', ["game",function (game) {
return {
template: 'Name : {{game.title}}'
};
}])
HTML:
<title>Services</title>
<script src="angular.min.js"></script>
<script src="my-file.js"></script>
</head>
<body ng-app="app">
<div ng-controller="AppCtrl">{{title}} </div>
<hello-world></hello-world>
</body>
Spiel ist nicht auf Ihrem Umfang verfügbar. Wenn Sie eine Direktive verwenden, sollten Sie ein Objekt mit einer Link-Funktion zurückgeben. Dort können Sie eine Eigenschaft Ihres Bereichs für den Service festlegen. mögen: Verbindung: {....., Funktion (Bereich, elem, attrs, ctrl) { scope.game = Spiel;} –
Ich habe Spiel in Richtlinie eingespritzt. es wird nicht so funktionieren? –
Ja, Sie haben es injiziert, wie Sie es in den Controller injizieren, aber wenn Sie sich Ihren appCtrl anschauen, müssen Sie auch tun: $ scope.title = game.title; –