2017-03-22 2 views
1

내가이 (속기)와 유사한 페이지가의 각도 2를 사용하고자하는 기존 .NET MVC 응용 한 I :각도 2 - ng-content 및 바인딩을 사용하여 루트 구성 요소에 데이터를 전달할 수 없습니다. 목표 :. 재사용 가능한 형태의 구성 요소

<html> 
<head>css imports and jquery imports</head> 
<body> 
    <div> 
     a bunch of tables existing in the HTML outputed by razor 
    </div> 
    <myForm postLocation='Management/User/Add'> 
     <form #addForm="ngForm" (ngSubmit)="submitAddForm(addForm)"> 
      Username: 
      <input ([ngModel])="user.username" type="text" required /> 
     </form> 
    </myForm> 
</body> 
</html> 

요점은 내가 '이다 ng-content를 통해 전달 된 양식 입력을 가진 재사용 가능한 양식 구성 요소를 만들려고합니다. 내가 게시 위치에 전달하므로 http 게시는 게시 위치를 알고 있습니다. 구성 요소는 다음과 같습니다.

import { Component, Input } from '@angular/core'; 
import { NgForm } from '@angular/forms'; 
import { Http, Response } from '@angular/http'; 

@Component({ 
    selector: 'myForm',  
    template: `<ng-content></ng-content>`, 
}) 

//The component that controls the datatable add form. 
export class myForm { 
    //Constructor 
    constructor() { 

    } 

    //Properties 
    @Input() postLocation: string; 

    submitted = false; 

    //Functions 
    submitAddForm(form: NgForm) { 
     console.log(form.value); 
     console.log("Post Location: " + this.postLocation); 
    } 
} 

페이지가로드되면 전체 양식이 페이지에서 사라집니다. 소스를 보면 html로 코드를 볼 수 있습니다. 콘솔에 오류가 없습니다.

대신 양식과 입력을 별도의 cshtml 파일로 가져 와서 templateURL을 통해 앱으로 가져 오기위한 컨트롤러 작업을 수행하면 페이지의 내용이 표시되지만 게시물 위치는 채워지지 않습니다. 정의되지 않습니다.

어떻게 작동합니까? myForm을 전달할 페이지의 기존 HTML과 함께 사용하고 싶습니다.

저는 AngularJS에서 모형을 작업했습니다. 나는 적어도 10 년 동안 더 많이 사용될 응용 프로그램을위한 프론트 엔드 js 프레임 워크를 재 설계 할 시점에있다. 앵귤러 앵글을 사용하는 것 같아요. 앵귤러 앵귤러 앵귤러 앵귤러 앵무새가 현재 지원되는 것이라면 가난한 결정 일 수 있습니다.

답변

1

번역은 현재 루트 구성 요소에서 지원되지 않지만 계획되어 있습니다.

도 참조 https://github.com/angular/angular/issues/4946

+0

타임 라인이 있습니까? 지금 앵귤러 2를 버려야하는 것처럼 보입니다.하지만 다른 프레임 워크로 프로세스를 시작하면 필요에 따라 앞으로 앵글로 전환하는 것이 더 어려워 질 것입니다. – SolidSnake4444

+0

타임 라인에 대해 알지 못합니다. HTML이 외부에서 나와야하는 이유는 무엇입니까? –

+0

리소스 파일 (.resx 파일)과 같이 지역화를 위해 문자열을 배치하고 정보를 가져 오는 모델 함수가 있습니다. 이를 타이프 ​​스크립트로 옮기면 문자열과 모델 데이터를 채우기 위해 서버 측 변수에 액세스 할 수 없습니다. 또한 그들은 모두 비슷한 기능을 공유하는 경우 하나의 문자열을 변경하여 여러 구성 요소가 필요할 것처럼 보입니다. – SolidSnake4444