2013-10-21 46 views
1

我有一個這樣的形式:如何使用angularjs訪問包含文件中定義的變量?

my_file.html:

<form name='first_form'> 
    ... 
</form> 
<div ng-include="'/includes/second_form.html'"></div> 

<a ng-click="myLog(first_form);myLog(second_form);">Submit</a> 

/includes/second_form.html

<form name='second_form'> 
    ... 
</form> 

在可以通過first_form到我的控制器,但不是second_form。 (myLog執行console.log)。

如何訪問包含文件中的表單?有沒有更好的方式來訪問角度的形式?

+2

由於如何範圍繼承和的FormController工作,有沒有簡單的方法訪問內部表單!這實際上是一種干涉。我總是將控制器放在與表單相同的級別以訪問它。您可以使用協同操作指令(一種接收表單的父代以及內部表單中的「需要」父指令控制器並向其提供表單的子代)將其公開給父級。 –

+0

@NikosParaskevopoulos我是angularjs的新手。你能否以更詳細的方式指導我通過你的合作技術? –

回答

0

的原理是這樣的:

my_file.html在一個指令,並且包括所述第二形式作爲指令也一樣,例如爲:

<div outer-directive> 
    ... 
    <div inner-directive></div> 
    ... 
</div> 

outerDirective必須定義一個構件的方法,例如一控制器setInnerForm(form),這將在範圍中存儲其form參數。內部指令將要求家長控制和調用此方法爲:

app.directive("innerDirective", function() { 
    return { 
     ... 
     templateUrl: "/includes/second_form.html", 
     require: "^outerDirective", 
     link: function(scope, elem, attrs, outerController) { 
      outerController.setInnerForm(scope.second_form); 
     }, 
     ... 
    }; 
} 

原理的工作演示是在這裏:http://jsfiddle.net/ABK5y/

相關問題