2016-06-23 12 views
-1

私はAngularJSでタスク管理ツールを作成しています。ユーザーが新しいタスクを作成するために入力するフォームがあります。ここでのショートバージョンがあります:あなたは私がローカルストレージに作業を保存しています見ることができるように

$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)); 
}; 

<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ファイルにタスクを保存する方法です。これはテスト目的のための唯一の一時的な解決策であり、最終バージョンはタスクをデータベースに保存します。

とにかく、私はまた、$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

モーダルは 'submitConの下にあるされません。テンプレート?テンプレート? – 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ファイルでそれを変更するはずですか?彼らは今のように私の 'ng-models'を残していますか? –

0

あなたはスコープ(モーダルの共有範囲または新しいスコープ)で何が起こるかを制御することができますので、私は、モーダルを開くためにuibBootstraps $モーダル/ $ uibModalを使用することをお勧め:HTML aから https://angular-ui.github.io/bootstrap/#modal

コールをこのようなモーダルを開く角度方法:

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

私はスコープを設定し、現在では考えて異なるものであり、タスクはSubmitControllerにオブジェクトがrecurrence_type

関連する問題