controller1
のボタンのオンクリック、controller2
の機能の呼び出しが必要です。 私はサービスを使ってみましたが、運はありません。コントローラ1のボタンのオンクリック、コントローラ2からの機能の実行
plunkrのコードを確認してください。
提案がありますか?
controller1
のボタンのオンクリック、controller2
の機能の呼び出しが必要です。 私はサービスを使ってみましたが、運はありません。コントローラ1のボタンのオンクリック、コントローラ2からの機能の実行
plunkrのコードを確認してください。
提案がありますか?
サービスを使用する代わりに、broadcast
を使用して別のコントローラからメソッドを呼び出します。
.controller('ctrl', [
'$scope', 'svc',
function($scope, svc) {
$scope.fun = function() {
$scope.$emit('sampleEvent')
}
}
])
.controller('ctrl1', [
'$scope', 'svc', '$rootScope',
function($scope, svc, $rootScope) {
$rootScope.$on('sampleEvent', function(ev) {
$scope.fun2()
})
$scope.fun2 = function() {
alert("hi");
}
}
]);
はい、感謝しました –
は、あなたが本当にサービスでそれをしたいだけでなく場合は、コードチェックplunkrのために、この
(function() {
angular.module('app', [])
.service('svc', function() {
var svc = {};
svc.method = function() {
// And here you can call it
svc.fun2();
//on click from first controller it should open a alert box saying "hi"
}
return svc;
})
.controller('ctrl', [
'$scope', 'svc', function($scope, svc) {
$scope.fun = function(){
svc.method();
}
}
])
.controller('ctrl1', [
'$scope', 'svc', function($scope, svc) {
$scope.fun2 = function(){
alert("hi");
}
// inject your method to your service here when method is defined
svc.fun2 = $scope.fun2;
}
]);
})();
はいそれは期待通りに動作します.. –
のようにそれを行うことができます。https://plnkr.co/edit/bkD1iR3LBk2pAayQ7wCe ?p = preview –