我正在使用Ruby on Rails和AngularJS,目前我正在使用Angular根据选择显示文本字段。但是,我在保存价值方面遇到了麻烦。
我的html.haml:
%div{ "ng-app" => "formApp" }
= simple_form_for(@app) do |f|
.form-group{ "ng-controller" => "TypeCtrl", "ng-init" => "init('#{@type}')" }
= f.label :type, "Type"
= f.select :type, type_selection, { }, { required: true, class: "form-control", "ng-model" => "type_select" }
= f.text_field :type, class: "form-control", "ng-show" => "type_select=='others'"
我的js.erb:
$("document").ready(function() {
formApp = angular.module('formApp', []);
formApp.controller('TypeCtrl', ['$scope', function($scope) {
$scope.init = function(type) {
$scope.type_select = type;
}
}]);
});
@type
中使用的 ng-init
在我的控制器中定义。目前,我已经在init上正确显示了下拉列表,并按预期显示了文本字段。但是,它始终将type
字段保存为输入的内容,而不是查看下拉列表(可能是因为type
都有2个输入字段)。用RoR和AngularJS解决这个问题的传统方法是什么?
答案 0 :(得分:1)
您不应该有多个具有相同名称的输入。它将分配最后一个。考虑将一个改为例如edit
和ref.edit(sel, null, function (node, status) {
console.log(node.text); // the new node title
})
的另一个然后在控制器端单独处理它们。
type_select
示例:
type_input