我正在尝试通过使用AngularJS触发ng-click功能来实时编辑元素。
这是我的html:
<div class="row question">{{questions.1.name}} <a href="" class="glyphicon glyphicon-pencil" ng-click="editQuestion(questions.1.name)"></a></div>
和js:
function QuestionsMap($scope) {
$scope.questions = {
"1": {
"name": "Hello! Do you like to travel?",
"ID": "1",
"answer": {
"yes": {
"name": "Yes",
},
"no": {
"name": "No",
}
}
}
};
$scope.editQuestion = function (name) {
$scope.editing = $scope.questions[name];
};
}
我错过了什么? editQuestion函数是否写得不正确?
答案 0 :(得分:2)
$scope.questions[name]
不是什么。没有$scope.questions["Hello, do you like to travel"]
。但是有一个$scope.questions["1"]
。尝试传递questions.1.ID
而不是questions.1.name
@ c-smile也是对的。不要用整数开始你的键。这在js中是不允许的。为此,您需要切换到'n1'
答案 1 :(得分:1)
这个questions.1.name
是JS透视图中不正确的语法。 JS中变量的名称不能从数字开始。因此,您应该将代码重构为以下内容:
<div class="row question">{{questions.n1.name}}
等等
"n1": { ... }
答案 2 :(得分:1)
输入字段不会神奇地显示你必须编码。
<input type="text" ng-model="newquestion"><input type="button" ng-click="add()" value="save">
控制器,您可以像$scope.questions.push({'name':$scope.newquestion.name,'id':$scope.newquestion.id});
$scope.add = function(){
$scope.questions.push($scope.newquestion);
$scope.newquestion = "";
};