2016-06-23 6 views
-1

저는 AngularJS에서 작업 관리 도구를 만들고 있는데, 사용자가 새 작업을 작성하기 위해 작성해야하는 양식이 있습니다. 여기에 짧은 버전입니다 :

<div ng-controller="SubmitController"> 
    <!-- Form --> 
    <form> 
     Title 
     <input type="text" ng-model="tasks.title"> 

     ID 
     <input type="text" ng-model="tasks.id"> 

     Type 
     <select ng-model="tasks.type"> 
      <option value="" disabled selected></option> 
      <option value="Job">Job</option> 
      <option value="Maintenence">Maintenence</option> 
      <option value="Verification">Verification</option> 
     </select> 

     <!-- This button opens a modal to select the recurrence --> 
     <a class="btn modal-trigger" href="#modal4">Recurrence</a> 

     <!-- This button adds the task to the list --> 
     <a ng-click="add(tasks)" class="btn" type="submit" name="action">Add</a> 
    </form> 
</div> 

여기 내의 .js 파일에 작업을 저장하는 방법은 다음과 같습니다

$scope.add = function(tasks) 
{ 
    $scope.tasks.push 
    ({ 
     'id': tasks.id, 
     'title': tasks.title, 
     'type': tasks.type, 
     'recurrence_type': tasks.recurrence_type 
    }); 

    localStorage.setItem('tasks',JSON.stringify($scope.tasks)); 
}; 

당신은 내가 로컬 저장소에서 작업을 저장하고있어 볼 수 있듯이. 이것은 테스트 용 임시 솔루션 일 뿐이며, 최종 버전은 작업을 데이터베이스에 저장합니다.

어쨌든, 나는 또한 $scopetasks.recurrence_type과 그 모달을 열 수있는 재발 메커니즘을 가지고 있어야합니다.

내 질문

<!-- Modal Structure --> 
<div id="modal4" class="modal"> 
    <div class="modal-content"> 
     <form> 
      Repeats: 
      <select ng-model="tasks.recurrence_type"> 
       <option value="" disabled selected></option> 
       <option value="Daily">Daily</option> 
       <option value="Weekly">Weekly</option> 
       <option value="Monthly">Monthly</option> 
       <option value="Yearly">Yearly</option> 
      </select> 
     </form> 
    </div> 
</div> 
<div class="modal-footer"> 
    <a href="#" class=" modal-action modal-close btn">Save</a> 
</div> 
입니다 : : 어떻게이
$scope.tasks.recurrence_type 에 그 모달의 재발 유형을 저장합니까 여기

는 모달입니까?

+0

모달을하지 않는 SubmitController에 객체를 설정 현재의 생각은'submitCon을 받고있다 troller' 템플릿? – AranS

+0

'ng-model = "tasks.title"은 $ scope.tasks 객체를 가지고 있음을 의미하지만'$ scope.tasks.push'는 배열처럼 보입니다. 그래서 무엇입니까? –

+0

@AranS 지금은 모달이 .html 파일의 나머지 코드와 구분되어 있습니다. 하지만 모달을'SubmitController' 아래에 넣을 수 있습니다. 무슨 일이 일어나는지 보려고 그걸 시도 할거야. –

답변

1

이 경우 모달과 템플리트의 범위가 다릅니다. 이 문제의 해결책은 $rootScope.tasks을 사용해야한다는 것입니다.

+0

어떻게 사용합니까? 나는 단순히'ng-model = "$ rootScope.tasks.recurrence_type">'을 넣으려고했지만 작동하지 않았다. 또한 모달을 닫을 때 해당 옵션이 저장되는지 여부도 알지 못합니다. 문제가 될 수도 있습니다. –

+0

컨트롤러의 모든 곳에서'$ scope'를'$ rootScope'로 변경하십시오. 이것은 – Prasheel

+0

내 JavaScript 파일에서 변경해야합니다. 그리고 지금 내 모델을 떠나라. –

0
내가 모달을 열 uibBootstraps $ 모달/$ uibModal를 사용하는 것이 좋습니다 것입니다, 그래서 당신이 범위 (공유 범위 또는 모달에 대한 새 범위)에 발생하는 일을 제어 할 수있는

: html로 A로부터 https://angular-ui.github.io/bootstrap/#modal

전화 이 같은 모달 열립니다 각 방법

$modal.open({ 
    templateUrl: "path to modal html", 
    scope: $scope 
}); 

나는 범위가 다르고 작업이 RECURRENCE_TYPE에게

관련 문제