如何使用angularjs访问包含文件中定义的变量?

时间:2013-10-21 10:57:41

标签: javascript angularjs angularjs-scope

我有一个这样的表格:

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>

In可以将first_form传递给我的控制器,但不能传递给second_form。 (myLog执行console.log)。

如何访问附带文件中的表单?有没有更好的方法来访问角形式的表单?

1 个答案:

答案 0 :(得分: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/