2016-04-09 298 views
0

ドキュメントのステータスを示す簡単なディレクティブを作成します。私はこのことをコントローラーを介して指示を出さずに実行しています。しかし、私は再利用可能な指令を作成したい。ドキュメントステータスのディレクティブ

の1-新:私はこれを作成している

投稿2 - 未保存の3-ドラフトの4-

Document Status Changed to Unsaved

Document Status New

それは次の状態を持っているでしょうプランク: http://plnkr.co/edit/sNoHGh4c4dgYycoDAhLQ?p=preview

私の指示はフォームの外にとどまります。どのように私はこのような指示から州にアクセスすることができます:

$scope.mainform.$setSubmitted(); 

答えて

0

この指示文では、属性で定義されたスコープ変数に関数を公開してください。

angular.module("myApp").directive('once', function() { 
    return { 
    scope: { 
     //publish API 
     onceAPI: '=once' 
    }, 
    link: function(scope, elem, attrs) { 
     scope.onceAPI = scope.onceAPI || {}; 
     //publish function 
     scope.onceAPI.setPostComplete = function() { 
      console.log("post complete") 
      scope.onceAPI.isPosted = true; 
     } 
    } 
    }; 
}); 

USAGE

<div once="vm.onceAPI"></div> 

CONTROLLER

vm.submit = function(){ 
    $scope.mainform.$setSubmitted(); 
    var postData = {in1: vm.in1}; 
    $http.post(url,postData).then(function() { 
     vm.onceAPI.setPostComplete(); 
    }); 
}; 

DEMO on PLNKR

+0

ありがとうございます@georgeawg。私は私のディレクティブ内にすべての機能(テンプレートを含む)を含める方法を探していたので、フォームの名前を同じに保つために、別のページで再利用することができました。 – geekowls

+0

それを手伝ってもらえますか? – geekowls

+0

何を試してみましたか?ディレクティブの一般的な情報については、[AngularJS Developers Guide - Directives](https://docs.angularjs.org/guide/directive)を参照してください。詳細については、[AngularJS Comprehensive Directive API Reference](https://docs.angularjs.org/api/ng/service/$compile#comprehensive-directive-api)を参照してください。 – georgeawg

関連する問題