Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止在Angularjs中插入重复记录_Javascript_Angularjs_Html - Fatal编程技术网

Javascript 如何防止在Angularjs中插入重复记录

Javascript 如何防止在Angularjs中插入重复记录,javascript,angularjs,html,Javascript,Angularjs,Html,我正在使用Angular和web API加载SQL db表中的所有记录,我试图做的是在转到API之前,防止用户在Angular中插入新记录,以防某些数据与返回的其他记录重复。 当按下save键时,如何发出警报,通知用户某些字段已经存在,如“code”、“L_Desk”、“A_Desc”以及从表中加载的数据 HTML: 您可以在此处使用筛选器来检查重复项 var filtered= $filter('filter')($scope.contracts, function(value){

我正在使用Angular和web API加载SQL db表中的所有记录,我试图做的是在转到API之前,防止用户在Angular中插入新记录,以防某些数据与返回的其他记录重复。 当按下save键时,如何发出警报,通知用户某些字段已经存在,如“code”、“L_Desk”、“A_Desc”以及从表中加载的数据

HTML:


您可以在此处使用筛选器来检查重复项

var filtered= $filter('filter')($scope.contracts, function(value){
        return value.Staff_Type_Code === Contract.Staff_Type_Code ;
});

if(filtered.length > 0){
   console.log("duplicate exists");
}

或者他可以使用原生的
[].find()
数组方法。
<input type="checkbox" ng-model="Hide" />Hide <input type="button" value="Clear" ng-click="resetform()" />
    <input type="submit" value="Save" ng-click="save()"/> <input type="button" value="Delete" ng-click="delete(selectedMember.sys_key)" />
    <fieldset>
        <legend>Contract Type</legend>
        <table>
            <tr>
                <td>Code</td>
                <td><input type="text" size="10" pattern="^[a-zA-Z0-9]+$" title="Alphnumeric" required autofocus ng-model="selectedMember.Code.Staff_Type_Code">
                    <input type="text" size="10" hidden ng-model="selectedMember.sys_key" /> </td>
            </tr>
            <tr>
                <td>Latin Description</td>
                <td><input type="text" required size="35" ng-model="selectedMember.Latin.L_Desc"></td>
            </tr>
            <tr>
                <td>Local Description</td>
                <td><input type="text" required size="35" ng-model="selectedMember.Local.A_Desc"></td>
            </tr>
            <tr>
                <td>No. Of Houres Per Day</td>
                <td><input type="text" pattern="^[0-9]+$" title="Please enter numbers only" size="10" maxlength="2" ng-model="selectedMember.Hours_Day"></td>
            </tr>
            <tr>
                <td>No. Of Days Per Week(s)</td>
                <td><input type="text" pattern="^[0-9]+$" title="Please enter numbers only" size="10" maxlength="2" ng-model="selectedMember.Days_Week"></td>
            </tr>
            <tr>
                <td>End Of Contract By</td>
                <td>
                    <select ng-model="selectedContract">
                        <option>Age</option>
                        <option>Number Of Years in Service</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Number</td>
                <td>
                    <input type="text" pattern="^[0-9]+$" title="Please enter numbers only" size="10" maxlength="2" ng-model="selectedMember.Num_EndWork">
                    <select ng-model="selectedNumber">
                        <option >Months</option>
                        <option>Years</option>
                    </select>
                </td>
            </tr>

        </table>
    </fieldset>

    <br />

    <table border="1" ng-hide="Hide">
        <thead>
            <tr>
                <!--<th>syskey</th>-->
                <th>Code</th>
                <th>Latin Description</th>
                <th>Local Description</th>
                <th>Hours_Day</th>
                <th>Days_Week</th>
                <th>Num_EndWork</th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat="c in Contracts | filter:selectedMember.Code | filter:selectedMember.Latin | filter:selectedMember.Local ">

                <td style="display:none;"><a href="#" ng-click="showInEdit(c)">{{c.sys_key}}</a></td>
                <td><a href="#" ng-click="showInEdit(c)">{{c.Staff_Type_Code}}</a></td>
                <td><a href="#" ng-click="showInEdit(c)">{{c.L_Desc}}</a></td>
                <td><a href="#" ng-click="showInEdit(c)">{{c.A_Desc}}</a></td>
                <td><a href="#" ng-click="showInEdit(c)">{{c.Hours_Day}}</a></td>
                <td><a href="#" ng-click="showInEdit(c)">{{c.Days_Week}}</a></td>
                <td><a href="#" ng-click="showInEdit(c)">{{c.Num_EndWork}}</a></td>

            </tr>
        </tbody>
    </table>

</form>
    contractT.controller('crudController', function ($scope, crudService)
{
    loadrecords();
    function loadrecords()
    {    
        crudService.getContracts().then(function (response) {
            $scope.Contracts = (response.data);
            $scope.selectedMember = {};
            console.log($scope.Contracts);
        });
    }

$scope.save = function () {

    debugger; 

    if ($scope.selectedContract == 'Age' && $scope.selectedNumber == 'Months') {
        var Contract = {
            Staff_Type_Code: $scope.selectedMember.Code.Staff_Type_Code,
            L_Desc: $scope.selectedMember.Latin.L_Desc,
            A_Desc: $scope.selectedMember.Local.A_Desc,
            Num_EndWork: $scope.selectedMember.Num_EndWork,
            Type_EndWork: 1,
            Hours_Day: $scope.selectedMember.Hours_Day,
            Days_Week: $scope.selectedMember.Days_Week,
            sys_key: $scope.selectedMember.sys_key
        }


    }
    else if ($scope.selectedContract == 'Age' && $scope.selectedNumber == 'Years')
    {
        var Contract = {
            Staff_Type_Code: $scope.selectedMember.Code.Staff_Type_Code,
            L_Desc: $scope.selectedMember.Latin.L_Desc,
            A_Desc: $scope.selectedMember.Local.A_Desc,
            Num_EndWork: $scope.selectedMember.Num_EndWork,
            Type_EndWork: 2,
            Hours_Day: $scope.selectedMember.Hours_Day,
            Days_Week: $scope.selectedMember.Days_Week,
            sys_key: $scope.selectedMember.sys_key
        }
    }

    else if ($scope.selectedContract == 'Number Of Years in Service' && $scope.selectedNumber == 'Months') {
        var Contract = {
            Staff_Type_Code: $scope.selectedMember.Code.Staff_Type_Code,
            L_Desc: $scope.selectedMember.Latin.L_Desc,
            A_Desc: $scope.selectedMember.Local.A_Desc,
            Num_EndWork: $scope.selectedMember.Num_EndWork,
            Type_EndWork: 3,
            Hours_Day: $scope.selectedMember.Hours_Day,
            Days_Week: $scope.selectedMember.Days_Week,
            sys_key: $scope.selectedMember.sys_key
        }
    }

    else  {
        var Contract = {
            Staff_Type_Code: $scope.selectedMember.Code.Staff_Type_Code,
            L_Desc: $scope.selectedMember.Latin.L_Desc,
            A_Desc: $scope.selectedMember.Local.A_Desc,
            Num_EndWork: $scope.selectedMember.Num_EndWork,
            Type_EndWork: 4,
            Hours_Day: $scope.selectedMember.Hours_Day,
            Days_Week: $scope.selectedMember.Days_Week,
            sys_key: $scope.selectedMember.sys_key
        }
    }

    if (!$scope.selectedMember.sys_key) {
        var promisePost = crudService.post(Contract);
        promisePost.then(function (pl) {
            loadRecords();
            $scope.selectedmember = {};
        }, function (err) {
            console.log("Err" + err);
        });
    }
    else
    {
        var promisePost = crudService.put(Contract);
        promisePost.then(function (pl) {
            loadRecords();
            $scope.selectedmember = {};
        }, function (err) {
            console.log("Err" + err);
        });
    }
}




$scope.resetform = function () {
    $scope.selectedMember = {};
    //$scope.selectedMember = {};
    //$scope.Local = {};
    //$scope.Nhd = null;
    //$scope.Ndw = null;
    //$scope.Num = null;
    }




$scope.selectedMember = {  Code: "",sys_key:"", Latin:"" , Local:"", Hours_Day :"", Days_Week:"", Num_EndWork:""  } 

$scope.showInEdit = function (member)
{
    $scope.selectedMember = member;
    //$scope.selectedMember.Code = member;
    //$scope.selectedMember.Latin = member;
    //$scope.selectedMember.Local = member;
    //$scope.selectedMember.Hours_Day = member;
    //$scope.selectedMember.Days_Week = member;
    //$scope.selectedMember.Num_EndWork = member;
}
var filtered= $filter('filter')($scope.contracts, function(value){
        return value.Staff_Type_Code === Contract.Staff_Type_Code ;
});

if(filtered.length > 0){
   console.log("duplicate exists");
}