我正在与AngularJS一起显示应用程序键(应用程序标识符)表,我想使用编辑按钮在该表行中显示一个小表格。然后用户可以编辑字段并单击“保存”或“取消”
演示:http://jsfiddle.net/Thw8n/
我的内联表单效果很好。我单击编辑,然后出现一个表格。取消也很棒。
我的问题是
editMode
通话回来后如何禁用?这是我的控制器中使用的实际代码Im(在JSFiddle Im中无法进行http调用)。第一个$ http填写表格,editAppKey函数由保存按钮调用。
function AppKeysCtrl($scope, $http, $location) {
$http({
method: 'POST',
url: 'http://' + $location.host() + ':1111/sys/appkey/save',
data: {
// How do I get the data?
}
}).
success(function(data, status, headers, config) {
$scope.appkeys = data;
}).
error(function(data, status, headers, config) {
$scope.appkeys = [{ "appkey" : "ERROR", "name" : "ERROR", "created" : "ERROR" }];
});
$scope.editAppKey = function() {
$http({
method: 'POST',
url: 'http://' + $location.host() + ':1111/sys/appkeys'
}).
success(function(data, status, headers, config) {
alert("Success!");
$scope.editMode = false;
}).
error(function(data, status, headers, config) {
alert("There was an error.");
});
}
}
当我们按下“编辑”按钮并更改一个字段时,我们也会更改我们的主要模型appkeys
。这意味着在“取消”上,我们需要恢复旧模型。
这意味着我们至少需要:
因此,这是一段HTML代码:
<td>
<button type="submit" data-ng-hide="editMode" data-ng-click="editMode = true; editAppKey(entry)" class="btn btn-default">Edit</button>
<button type="submit" data-ng-show="editMode" data-ng-click="editMode = false; saveField()" class="btn btn-default">Save</button>
<button type="submit" data-ng-show="editMode" data-ng-click="editMode = false; cancel()" class="btn btn-default">Cancel</button>
</td>
而我们的控制器:
$scope.newField = {};
$scope.editing = false;
$scope.appkeys = [
{ "appkey" : "0123456789", "name" : "My new app key", "created" : tmpDate },
{ "appkey" : "abcdefghij", "name" : "Someone elses app key", "created" : tmpDate }
];
$scope.editAppKey = function(field) {
$scope.editing = $scope.appkeys.indexOf(field);
$scope.newField = angular.copy(field);
}
$scope.saveField = function() {
if ($scope.editing !== false) {
$scope.appkeys[$scope.editing] = $scope.newField;
$scope.editing = false;
}
};
$scope.cancel = function() {
if ($scope.editing !== false) {
$scope.appkeys[$scope.editing] = $scope.newField;
$scope.editing = false;
}
};
演示版 **[Fiddle](http://jsfiddle.net/Thw8n/4/)**
[编辑]
我想一次编辑几行,newFields
而是 使用数组$scope.newField
问题内容: 嗨,我有一个简单的ng-repeat-start和end用例,并且工作正常,当我想添加一个内部ng-repeat时出现了问题。这是我的代码 内部ng-repeat到td元素中不起作用,在检查html源代码时看到ngRepeat注释,但未创建td元素。 我的丑陋的解决方法(假设我知道该向量的大小)是: 问题答案: 从那时起,我不确定是否使用角度1.1.6,并且在1.1.5或1.0.7
问题内容: 我正在尝试处理ng-repeat循环内的范围问题-我浏览了很多问题,但还无法使我的代码正常工作。 控制器代码: 视图: 这是一个小提琴:http : //jsfiddle.net/cyberwombat/zqTah/ 基本上,我有一个包含多行文本的对象(这是一个传单生成器)。用户可以调整每行文本(文本,字体,大小,颜色等),我想为其创建预览。上面的示例仅显示了输入文本的输入字段,我希望
问题内容: 我想在内容更改时创建具有自定义行为的列表。我尝试为此创建一个指令,但是我对如何将ng-transclude与ng- repeat指令结合起来感到迷茫。有人可以让我走上正轨吗? HTML: Javascript: 我已经在这里工作了一部分 编辑: 条件: 该项目的模板必须在视图中定义,而不是在指令中定义,并且必须有权访问子作用域中的项目属性。理想情况下,我想像在ng-repeat指令中那
问题内容: 我在iframe中使用ng-src时遇到问题。我需要这样做: 结果: 我知道问题是$ sce,它是XSS的保护,并且该链接需要添加到白名单中。因此,当我执行此操作时,它就起作用了。 我在控制器内部定义: 但是我不能那样做,因为我正在使用ng-repeat循环,所以链接是动态生成的。必须从数据库中读取它! 问题答案: 您可以改用过滤器: HTML: 其中,“ yourURL”是ifram
问题内容: 我遇到了AngularJS的问题-无法在中显示选定的值。 这是我的用例: 我有一个以ng-repeat开头的视图,用于显示组件。每个组件都包含一个选择以选择增值税率。创建新项目时,看起来不错。但是,当我编辑现有项目时,实际的vatRate代码未显示在select中,而是看到默认选项“-SelectVAT Rate-”而不是所选的VAT。 我的模型仅包含增值税率的ID。 通过一个组件,我
问题内容: 作为AngularJS的新手,我正在寻找一种在触发后定位循环内元素的方法。他们当时似乎还没有准备好。谢谢你的帮助。 问题答案: 这篇博客文章讨论了在控制器中侦听事件以调用函数,而不是使用: