Tôi muốn để cư một hình thức với một số câu hỏi động (fiddle here):Làm cách nào để đặt tên mô hình động trong AngularJS?
<div ng-app ng-controller="QuestionController">
<ul ng-repeat="question in Questions">
<li>
<div>{{question.Text}}</div>
<select ng-model="Answers['{{question.Name}}']" ng-options="option for option in question.Options">
</select>
</li>
</ul>
<a ng-click="ShowAnswers()">Submit</a>
</div>
function QuestionController($scope) {
$scope.Answers = {};
$scope.Questions = [
{
"Text": "Gender?",
"Name": "GenderQuestion",
"Options": ["Male", "Female"]},
{
"Text": "Favorite color?",
"Name": "ColorQuestion",
"Options": ["Red", "Blue", "Green"]}
];
$scope.ShowAnswers = function()
{
alert($scope.Answers["GenderQuestion"]);
alert($scope.Answers["{{question.Name}}"]);
};
}
Tất cả mọi thứ hoạt động, ngoại trừ mô hình này là theo nghĩa đen câu trả lời [ "{{question.Name}}"], thay vì các câu trả lời được đánh giá ["GenderQuestion"]. Làm cách nào tôi có thể đặt tên mô hình đó theo cách động?
Tôi thề tôi đã cố gắng đó. Cảm ơn nhiều. Tôi thực sự đã đi một con đường khác nhau, và chỉ cần thiết lập các mô hình để question.Answer (Tôi sẽ đưa ra một fiddle cập nhật trong một chút), mà hóa ra là một câu trả lời trực tiếp hơn (gotta ra khỏi suy nghĩ jQuery), nhưng thật tuyệt vời khi biết rằng tôi có thể thực sự làm theo cách mà tôi đã lên kế hoạch ban đầu cho tương lai. Cảm ơn một lần nữa! –
Cập nhật fiddle: http://jsfiddle.net/2AwLM/23/ –
Trong trường hợp điều này giúp bất kỳ ai khác, tôi đã gặp sự cố tương tự, nhưng vấn đề của tôi là tôi đã sử dụng 'ng-pattern =" field.pattern "' khi những gì tôi thực sự muốn là 'pattern =" {{field.pattern}} "'.Loại khó hiểu rằng góc thường cung cấp một trợ giúp cho các thuộc tính động nhưng lần này đã viết xác nhận phía máy khách của chính nó và đặt cho nó cùng một tên. – colllin