AngularJS控制器对象指向链接

时间:2013-12-02 21:32:55

标签: javascript angularjs angularjs-directive

使用angularjs,我试图动态填充表单,然后通过POST将表单数据提交给服务器。

我在我的控制器中创建了一个数据变量(稍后发布)

$scope.data = {};

然后

<div ng-repeat="(name, attributes) in fields">
    <element myvar="data" name="{{name}}" attributes="{{attributes}}" results="{{getValue(name)}}" ></element>
</div>

字段可以看起来像

{"agency":{"name_displayed":"Agency","size":"30","tag":"input","type":"text"},"department":{"name_displayed":"Department","size":"30","tag":"input","type":"text"},"description":{"cols":"50","name_displayed":"Description","rows":"4","tag":"textarea"}}

我的指令看起来像这样

demoApp.directive("element", function($compile) {

    var template = function(name, attributes, results) {
        // returns template string
        // eg. returns '<input size="30" value="my agency" name="agency" ng-model="data.agency" type="text">'
    };

    return {
        restrict: "E",
        link: function(scope, element, attrs) {
            var attributes = angular.fromJson(attrs.attributes);
            var tpl = template(attrs.name, attributes, attrs.results);
            element.html(tpl);
            $compile(element.contents())(scope);
        }
    };
});

对于每个新元素,我想使用results属性更新控制器上的数据对象,以便填充元素。如果我没有直接设置元素的html,我知道如何使用ng-model属性执行此操作。

有什么想法?我可以在链接中这样做吗?

0 个答案:

没有答案