Devlec.com Javacstudy.com
MyÆäÀÌÁö |  óÀ½»ç¿ëÀÚ ÀÌ¿ë¾È³» |  ÀÌ¿ë¹®ÀÇ |  ȸ»ç¼Ò°³

¡á Æ©ÅÍ°Ô½ÃÆÇ Article Number : 27397

¹Ú¿ëÁØ °­»ç´ÔÀÌ ÀÛ¼ºÇϽŠ³»¿ëÀÔ´Ï´Ù. 2017-07-10   |   Refer : 444
÷ºÎÆÄÀÏ : None   À̹ÌÁö : None ŸÀÔ : °ø°³±Û


¾È³çÇϼ¼¿ä.

¾î¶² ÅؽºÆ®¹Ú½º¿¡ ÀÖ´Â °ªÀÌ ÀÌ¹Ì 

µ¥ÀÌÅͺ£À̽º¿¡ µé¾î ÀÖ´ÂÁö È®ÀÎÇÏ´Â ±â´ÉÀº

ÀϹÝÀûÀ¸·Î Ajax·Î ó¸®Çϴµ¥¿ä.

Angualrµµ º°´Ü ´Ù¸£Áö ¾Ê½À´Ï´Ù.


¾Æ·¡ »ùÇà ÄÚµå´Â Âü°÷ÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.

´Ù¸¸, Á¦ Angular °­ÀÇÀÇ Heroes °­ÀǸ¦ ÀÌ¹Ì ¾Ë°í ÀÖ´Ù´Â °¡Á¤ÇÏ°Ô

³ª¿­ÇÑ »ùÇà ¼Ò½ºÀÔ´Ï´Ù.

[1] Hero.cs : ¸®Æ÷ÁöÅ丮 Ŭ·¡½º¿¡ ¸Þ¼­µå Ãß°¡

 /// 
 /// À̸§ È®ÀÎ
 /// 
 public Hero GetHeroByName(string name)
 {
     string query = "Select * From Heroes Where Name = @Name";
     return db.Query(query, new { Name = name }).FirstOrDefault(); 
 }


[2] Hero.cs : Web API¿¡ ¾×¼Ç ¸Þ¼­µå Ãß°¡

 [HttpGet("{name}", Name = "GetHeroByName")] // À̸§ Ãß°¡: Name ¼Ó¼ºÀº ÇÁ·ÎÁ§Æ®¿¡¼­ À¯ÀÏÇÑ °ª ÁöÁ¤
 [ProducesResponseType(typeof(Hero), 200)]
 public IActionResult Get(string name)
 {
     try
     {
         var model = _repository.GetHeroByName(name);
         if (model == null)
         {
             return Ok(new Hero());
         }
         return Ok(model);
     }
     catch (Exception ex)
     {
         return BadRequest($"¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù. {ex.Message}");
     }
 }

[3] heroes.data.service.ts : Angular µ¥ÀÌÅÍ ¼­ºñ½º¿¡ ¸Þ¼­µå Ãß°¡

// »ó¼¼(cRud)
// GET: GetByName(): ÀÌ¹Ì ÀúÀåµÈ À̸§ÀÎÁö È®ÀÎ
getByName(name: string): Observable {
    const url = `${this.API_URI}/${name}`;
    return this.http.get(url)
        .map((res: Response) => {
            let model = res.json();
            return model;
        })
        .do(model => console.log("[heroes.data.service.ts] getByName »ó¼¼ µ¥ÀÌÅÍ Àб⠿Ϸá: " + JSON.stringify(model)))
        .catch(this.handleError);
}

[4] heroes.write.component.ts : ÀÔ·Â ÄÄÆ÷³ÍÆ®ÀÇ ÄÚµå ºñÇÏÀε忡 ÇÔ¼ö Ãß°¡

// ÅؽºÆ®¹Ú½º¿¡¼­ Æ÷Ä¿½º¸¦ ÀÒ¾úÀ» ¶§
txtName_Blur(name: string) {
    this.ds.getByName(this.model.name).subscribe(
        (model: IHero) => {
            if (model.name != null) {
                alert('ÀÌ¹Ì ÀÖ´Â À̸§ÀÔ´Ï´Ù.');
            }
        },      // ¼º°ø Äݹé
        (err) => {
            console.log("»ó¼¼ º¸±â ÆäÀÌÁö ¿¡·¯ ¹ß»ý: ");
            console.log(err);
        },      // ¿¡·¯ Äݹé
        () => {
            console.log("»ó¼¼ º¸±â ÆäÀÌÁö Àб⠿Ϸá");
        }       // ÃÖÁ¾ Äݹé
    );         
}

[5] heroes.write.component.html : ÀÔ·Â Æû¿¡ (blue) Ãß°¡

input type="text" 
       id="name" 
       placeholder="Enter Name" 
       required 
       minlength="2"
       class="form-control"

       name="name" 
       #name="ngModel" 
       [(ngModel)]="model.name" 
       (blur)="txtName_Blur()"

À§ ´Ü°è°¡ Àû¿ëµÈ ¼Ò½º´Â ¾Æ·¡ °æ·Î¿¡¼­ Å×½ºÆ®Çغ¸½Ç ¼ö ÀÖ½À´Ï´Ù. 

http://angular.dul.me/heroes/write

À§ °æ·Î¿¡¼­ È«±æµ¿À» ÀÔ·ÂÇϸé À̹ÌÀÖ´Ù´Â Àǹ̷Π°æ°íâÀÌ ¶å´Ï´Ù.

¾ø´Â µ¥ÀÌÅÍ´Â ¾Æ¹«·± °æ°íâÀÌ ¶å´Ï´Ù.


°£´ÜÈ÷ Àüü È帧À» À§ÇÑ ³»¿ëÀ¸·Î ÀýÂ÷¸¸ Ãß°¡ÇÑ »ùÇà ÄÚµåÀÌ´Ï

Âü°íÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.















°£¿µ¿ì ´ÔÀÌ ¾²½Å ¿ø¹® ±ÛÀÔ´Ï´Ù.


¿À·£¸¸¿¡ Áú¹®µå¸³´Ï´Ù. ÀßÁö³×½ÃÁÒ? ¹®Àdz»¿ëÀº ÀÌ·¸½À´Ï´Ù. ¿¹¸¦ µé¾î¼­ °Å·¡Ã³¸íÀ» ÀÔ·ÂÇßÀ»¶§ ÀÎDz¿¡¼­ ¾Æ¿ôÆ÷Ä¿½º°¡ ÀϾ¸é DB¿¡ Á¢¼ÓÇؼ­ °Å·¡Ã³°¡ ÀÖ´Â ¾ø´ÂÁö È®ÀÎÇؼ­ ¾Ë·ÁÁÖ°í Àç°í¸¦ ÀÔ·Â ÀÎDz¿¡¼­ ¾Æ¿ôÆ÷Ä¿½º°¡ ÀϾ¸é DB¿¡ Á¢¼ÓÇؼ­ Á¤º¸¸¦ ¾Ë·ÁÁÖ´Â ½ÄÀ¸·Î À¥ÇÁ·Î±×·¥À» ±¸ÇöÇÏ·Á°íÇÕ´Ï´Ù. ÀÌ·¸°Ô ±¸ÇöÀ» ÇÏ·Á°í º¸´Ï ¹é¿£µåÂÊ¿¡ ¶ó¿ìÆÃÀÌ ³Ê¹« ¸¹¾ÆÁ®¹ö¸®´Âµ¥¿ä ²À 1´ë1·Î ¸ÅĪÇؼ­ »ç¿ëÀ» ÇؾßÇϴ°ÍÀΰ¡¿ä? /:path/:id ÀÌ·±½ÄÀ¸·Î ¹é¿£µå¸¦ ±¸¼ºÇصµ °æ·Î¸¦ ÀÚµ¿À¸·Î ÀνÄÇØÁÖ´Â°Í ±îÁö´Â È®ÀÎÀ» Çߴµ¥¿ä.. sql¹®À» ÇÔ¼öÈ­ ½ÃÄѼ­ º¸³»·Á°íÇÏ´Ùº¸´Ï Àß ¸ð¸£°Ú½À´Ï´Ù. html¿¡¼­ input¿¡¼­ ÀԷµȰªÀ» nameó¸®Çؼ­ req.body.idó¸®ÇÏ¸é ¾Þ±Ö·¯¿¡¼­´Â ¸ø¹Þ°í ¹é¾Øµå·Î °¡¹ö¸®´Â°Í °°Àºµ¥¿ä.. ¾Þ±Ö·¯¿¡¼­ ¹Þ¾Æ¼­ ¹é¿£µå·Î Àü´ÞÇÒ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾î¶²°ÍÀÌ ÀÖÀ»Áö ±Ã±ÝÇÕ´Ï´Ù. Àú¿¡°Ô´Â ¸Å¿ì Áß¿äÇÑ ÀÏÀÌ´Ï ¹æ¹ýÀÌ ÀÖ´Ù¸é ´äº¯ ²À ºÎŹµå¸®°Ú½À´Ï´Ù.

·Îµù½Ã°£ : 0.078 sec
±Û ´äº¯   ±Û ¼öÁ¤   ±Û »èÁ¦   ±Û ¸ñ·Ï


   
   
Ȩ ȸ»ç¼Ò°³ ÀÌ¿ë¾à°ü °³ÀÎÁ¤º¸ º¸È£Á¤Ã¥ ÀÌ¿ë¾È³» Q&A FAQ Guide