私は以下の要件を満たしています。ボタンをクリックして別のコントローラからの値
私は3つのコントローラ、ctrl 1、ctrl 2、ctrl 3を持っています。私はfirstNameの値をctrl1に、lastNameをctrl2に渡し、ctrl3からボタンのクリックイベントを使ってフルネームを取得します。
私は以下のコードを試しましたが、NaNとして出力されています。 助けてください。
<script>
var myApp = angular.module('myApp', []);
myApp.factory('data', function() {
var factory = {};
var firstName = '';
var secondName = '';
factory.getName = function() {
return firstName + ' ' + secondName;
}
return factory;
});
myApp.controller('FirstController', function ($scope, data) {
$scope.firstName = data.firstName
});
myApp.controller('SecondController', function ($scope, data) {
$scope.secondName = data.secondName;
});
myApp.controller('ThirdController', function ($scope, data) {
$scope.getFullName = function() {
$scope.fullName = data.getName();
}
});
</script>
<h2>Controller 1</h2><br />
<div ng-controller="FirstController">
<input type="text" ng-model="data.firstName">
<br>FirstName is : {{data.firstName}}
</div>
<hr>
<h2>Controller 2</h2><br />
<div ng-controller="SecondController">
<input type="text" ng-model="data.secondName">
<br>LastName is : {{data.secondName}}
</div>
<h2>Controller 3</h2><br />
<div ng-controller="ThirdController">
<button ng-click="getFullName()">Get full Name</button>
Full name is: {{fullName}}
</div>
</div>
利用サービス。 –