使用Angularjs

时间:2017-05-27 11:10:16

标签: javascript angularjs json

循环遍历ng-repeat非常简单,因为你有json对象和按键,你可以根据需要循环和收集数据。 我的问题是如何遍历特定范围或输入以获取包含在ng-repeat中但未包含在json对象中的值?

这里是完整代码:https://jsfiddle.net/medoo/wgc1my7d/

解释

我有一个非常简单的对象,没有这样的键

var arr = ["~\\191746.JPG", "~\\191848.JPG", "~\\191908.JPG"];

然后,我在这个结构简单的表中列出了这些值,如下所示

    <div data-ng-app="myApp" data-ng-controller="myCtrl">
        <table id="fils">
            <tr data-ng-repeat="oneFile in ShowFiles">
                <td style="border: 1px solid #000000">{{oneFile}}</td>
                <td style="border: 1px solid #000000">
                    <input data-ng-model="naming" type="text" style="width: 200px" /> 
                    <%--here is my problem !!!
                    i need to get values of element "input" or scope "naming" which not included with  ShowFiles  --%>
                </td>
            </tr>
        </table>
        <input id="save" data-ng-click="save()" type="button" value="Save" />
        <div id="msg"></div>
    </div>


    <script>
    var arr = ["~\\191746.JPG", "~\\191848.JPG", "~\\191908.JPG"];
    var app = angular.module("myApp", []);
    app.controller("myCtrl", function ($scope) {
        $scope.ShowFiles = arr;

        $scope.save = function () {
            var msg = document.getElementById("msg");
            var index = 0;
            $scope.ShowFiles.forEach(function (oneFile, naming) {
                msg.innerHTML =
                msg.innerHTML + 'row #' + (index++) + ': ' + JSON.stringify(oneFile) + ' --- ' + naming + '<br />';
            });
        };
    )};
    </script>

我需要的是,当我按#save按钮收集两列的所有数据是否为  (包含在范围“ShowFiles”中,例如{{oneFile}})
OR
(不包括在[输入数据-ng-model =“命名”]等“ShowFiles”范围内) - “问题在这里”

显示如下

oneFile ---命名
第0行:“〜\ 191746.JPG”---“动物”
排#1:“〜\ 191848.JPG”---“汽车”
第2行:“〜\ 191908.JPG”---“朋友”

但是不幸地命名显示序列号,如0,1,2

1 个答案:

答案 0 :(得分:0)

要使其工作,您需要将输入元素标记替换为:

<input data-ng-model="fileNames[$index]" type="text" style="width: 200px" />

和您的控制器代码:

var arr = ["~\\191746.JPG", "~\\191848.JPG", "~\\191908.JPG"];
var app = angular.module("myApp", []);
app.controller("myCtrl", function ($scope) {
    $scope.ShowFiles = arr;
    $scope.fileNames = [];

    $scope.save = function () {
        var msg = document.getElementById("msg");
        $scope.ShowFiles.forEach(function (oneFile, index) {
            msg.innerHTML =
            msg.innerHTML + 'row #' + (index + 1) + ': ' + JSON.stringify(oneFile) + ' --- ' + $scope.fileNames[index] + '<br />';
        });
    };
});
相关问题