【发布时间】:2014-02-12 22:27:20
【问题描述】:
如何将输入的文本从我的指令推送到ng-submit 上的$scope.output = []?
查看实时代码: JSFiddle
我创建了一个锚点和 attr 指令<a href="" data-clicker>add section</a>,它在表单内附加了一个具有隔离范围的输入字段。
指令:
app.directive('clicker', function($compile) {
'use strict';
return {
compile: function(tElement, tAttrs) {
var t = '<div data-pop>Pop</div>';
return function(scope, iElement) {
iElement.click(function() {
$('.sections').append($compile(t)(scope));
});
};
}
}
});
app.directive('pop', function() {
'use strict';
return {
scope: {
name: '='
},
template: '<input type="text" ng-model="project.name" />'
// templateUrl: 'partials/pop.html'
};
});
当我尝试提交表单时,数据未正确推送。
html
<div ng-app="miniapp" ng-controller="MainCtrl">
<a href="" data-clicker>add section</a>
<form ng-model="project" ng-submit="addPage()">
<div class="sections"></div>
<input type="submit" value="submit"/>
</form>
<hr>
<hr>
<p>project: {{project.name | json}}</p>
<p>output: {{output | json}}</p>
</div>
控制器
app.controller('MainCtrl', function($scope) {
$scope.project = {"name":"sup"};
$scope.output = [];
$scope.addPage = function() {
$scope.output.push($scope.project);
};
【问题讨论】:
标签: javascript jquery html angularjs