当前位置: 首页 > 面试题库 >

如何在Angular JS Smart Table中编辑内容

叶鸿振
2023-03-14
问题内容

我对Java脚本很陌生,因此如果这很基本,我必须道歉。

如何使用Angularjs在Smart-Table中编辑行表?新的Smart-
Table似乎没有教程。我想为用户创建一个简单的表格,以输入特定地点的开放时间。

我创建了可以在表上添加和删除行的按钮,但是当我添加contenteditable =“
true”时,更新对象时所有更改都不会保留。我知道contenteditable是独立于智能表的特定html5参数,但是我不知道我还能如何更新数据或如何检索更新的数据。

通过mean.js路由从angularjs控制器检索数据。

<div class="controls">
    <table st-table="place.openHours" class="table table-striped">
        <thead>
        <tr>
            <th>Day</th>
            <th>Opening Time</th>
            <th>Closing Time</th>
        </tr>
        </thead>
        <tbody>
        <tr ng-repeat="row in place.openHours" contenteditable="true" >
            <td>{{row.day}}</td>
            <td>{{row.open}}</td>
            <td>{{row.close}}</td>
            <button type="button" ng-click="removeOpenHour(row)" class="btn btn-sm btn-danger">
                <i class="glyphicon glyphicon-remove-circle">
                </i>
            </button>
        </tr>
        </tbody>
    </table>

    <button type="button" ng-click="addOpenHour(row)" class="btn btn-sm btn-success">
        <i class="glyphicon glyphicon-plus">
        </i> Add new Row
    </button>
</div>

在javascript中:

    $scope.removeOpenHour = function removeOpenHour(row) {
        var index = $scope.place.openHours.indexOf(row);
        if (index !== -1) {
            $scope.rowCollection.splice(index, 1);
        }
    }

    $scope.addOpenHour = function addOpenHour() {
        $scope.place.openHours.push(
        {
            day: 'Monday',
            open: 540,
            close: 1080
        });
    };

问题答案:

谢谢,我环顾四周,并使用了http://jsfiddle.net/bonamico/cAHz7/中的代码,并将其与我的代码合并。

HTML档案:

<tr ng-repeat="row in place.openHours">
   <td><div contentEditable="true" ng-model="row.day">{{row.day}}</div></td>
   <td><div contentEditable="true" ng-model="row.open">{{row.open}}</div></td>
   <td><div contentEditable="true" ng-model="row.close">{{row.close}}</div></td>
   <td>
   <button type="button" ng-click="removeOpenHour(row)" class="btn btn-sm btn-danger">
      <i class="glyphicon glyphicon-remove-circle">
      </i>
   </button>
</td>

JS档案:

myApp.directive('contenteditable', function() {
return {
    require: 'ngModel',
    link: function(scope, elm, attrs, ctrl) {
        // view -> model
        elm.bind('blur', function() {
            scope.$apply(function() {
                ctrl.$setViewValue(elm.html());
            });
        });

        // model -> view
        ctrl.render = function(value) {
            elm.html(value);
        };

        elm.bind('keydown', function(event) {
            console.log("keydown " + event.which);
            var esc = event.which == 27,
                el = event.target;

            if (esc) {
                console.log("esc");
                ctrl.$setViewValue(elm.html());
                el.blur();
                event.preventDefault();
            }

        });

    }
};
});


 类似资料:
  • 我正在测试ace-editor显示服务器上的大型文本文件。由于它吹嘘能够处理高达4百万行的文件,并且具有文本高亮显示功能,这使它成为一个很好的候选者。 我一直在努力理解Ace Editor的文档和EditSession。根据我的理解,它可以告诉ace editor从一个文件中读取并显示它。 我正在使用createEditSessiont()创建会话并指定文档。在api文档中: createEdit

  • 问题内容: 使用什么是能够编辑内容的最佳方法? 在我理想的情况下, 添加的 生日将是一个超链接,点击该链接将显示一个编辑表单-与带有更新按钮的当前添加表单相同。 实时预览(插播) HTML: App.js: 问题答案: 您应该将表单放在每个节点内,分别使用和启用和禁用编辑。像这样: 这里的关键点是: 我已将控件更改为本地范围 已添加到,因此我们可以在编辑时显示它 添加了带有的,以便在编辑时隐藏内容

  • 我在stackoverflow上看到过类似的问题,但无论如何,我无法用这些答案解决我的问题。 我想做的是: 单击JTable中的double on单元格(由于IsCelledTable方法,该单元格可以编辑) 在自定义表中保存单元格的新值以打印此新值 更新我的数据库(SQlite)中的数据 这是我的自定义表模型 . 这是我打印JTable的JPanel:

  • 在bluemix中创建节点红色应用程序时,介绍页面会显示 我在bluemix UI或节点红色编辑器中看不到添加/编辑静态内容的任何地方。如何编辑node red应用程序的静态内容?

  • 问题内容: 我有一个jQGrid的列,我只想在添加新行时可编辑。 我已经看到了在对话框中同时进行编辑和添加时如何执行此操作的示例,但是是否可以通过内联编辑来执行此操作? 我试过在beforeShowForm:中使用grid.setColProp(),但这是行不通的(该列保持只读状态,并且在添加对话框中不存在)。 问题答案: 在旧示例中],可以在“添加”或“编辑”对话框中修改的所有字段都具有属性。仅

  • 问题内容: 偶然发现了这个很棒的文本编辑器,facebook的draft.js。我尝试遵循github中的示例,但我想创建一个具有内容的编辑器,而不是一个空的编辑器。 运行它,但出现错误,提示“未捕获的TypeError:contentState.getBlockMap不是函数” 问题答案: EditorState.createWithContent的第一个参数是,而不是字符串。您需要导入Cont