Angular ํ์ด ์๋น์ค์ ๊ณต์ฅ์ ๋ํด ํผํฉ๋ ์์ด๋์ด๋ฅผ ๊ฐ์ง๊ณ ์์๋์ง ํ์คํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋น์ค ์น์
์์ ์ธ๊ธ๋ ์ฝ๋์ ์์ด๋์ด๋ Angular์ ์ฌ์ดํธ์์๋ ํฉ์ฐ๋์ง ์์ต๋๋ค. ์๋น์ค ๋ฑ๋ก์ด ์์ฑ์ ํจ์๋ฅผ ๋ ๋ฒ์งธ ์ธ์๋ก ์ฌ์ฉํ๊ณ new
ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ์๋ก ํธ์ถ๋๋ค๊ณ ๊ฐ์ ํ๋ฉด ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ๋ ์ค์ ์์ฑ์๋ก ์ฒ๋ฆฌํ ์ ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
(function () {
angular
.module("App")
.service("Person", Person);
//angular wants my parameters to be injectables.
function Person(name, age) {
this.name = name;
this.age = age;
}
})();
(function () {
angular
.module("App")
.controller("DemoController", DemoController);
DemoController.$inject = ["Person"];
function DemoController(Person) {
var a = new Person("rafael", 22);// ERROR
var Demo = this;
Demo.title = "Demo";
}
})();
์๋น์ค ๋์ ๊ณต์ฅ ์ฌ์ฉ
Angular๋ ๊ณต์ฅ ๋ฐ ์๋น์ค๋ฅผ ์ํ ์ฑ๊ธํค์
๋๋ค...
(function() {
angular
.module('App')
.factory('servicePerson', servicePerson);
function servicePerson() {
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.alert = function() {
alert('Name:' + this.name +' Age:'+ this.age);
}
var service = {
newPerson : newPerson
}
return service;
function newPerson(name, age){
return new Person(name, age);
}
}
}) ();
์ปจํธ๋กค๋ฌ์์
(function() {
angular
.module('App')
.controller('DemoController', DemoController);
DemoController.$inject = ['servicePerson'];
function DemoController(servicePerson) {
var a = servicePerson.newPerson('rafael', 22);
a.alert();
var Demo = this;
Demo.title = 'Demo';
}
}) ();
๊ทธ๊ฒ์ ๋ฐ๋ก ์น๊ตฌ๊ฐ ์๋๋๋ค.
๋ ์ํด ์ผํด.
http://jsfiddle.net/sava/612phm6n/
@mroutput ์, ํ์ง๋ง ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
@sava-vidakovic. ๋๋
์ด๊ฒ์ด ๊ทธ๋ค์ด ์๋ํ๋ ๋ฐฉ์์ ๋๋ค :)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ ์ํด ์ผํด.
http://jsfiddle.net/sava/612phm6n/