Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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 模态中的角度。Can';我不知道我的控制器出了什么问题_Javascript_Angularjs - Fatal编程技术网

Javascript 模态中的角度。Can';我不知道我的控制器出了什么问题

Javascript 模态中的角度。Can';我不知道我的控制器出了什么问题,javascript,angularjs,Javascript,Angularjs,我是angular的新手,我一辈子都搞不懂这段代码到底出了什么问题。我会很高兴提供更多的代码,因为需要 问题是没有任何角度的动作发生。该表不会被填充,所有按钮都不会执行任何操作。http get从未到达我的服务器。所以,我想知道如果我犯了一个愚蠢的错误,是否有人会介意快速看一眼并让我知道 这是我的角度代码: function locateController($scope, $http) { $scope.init = function () {

我是angular的新手,我一辈子都搞不懂这段代码到底出了什么问题。我会很高兴提供更多的代码,因为需要

问题是没有任何角度的动作发生。该表不会被填充,所有按钮都不会执行任何操作。http get从未到达我的服务器。所以,我想知道如果我犯了一个愚蠢的错误,是否有人会介意快速看一眼并让我知道

这是我的角度代码:

function locateController($scope, $http) {
            $scope.init = function () {
                $http.get('@(Url.Action<WorkorderController>(c => c.GetLocateNumbers(Model.Id)))').success(function (data) {
                    $scope.model = data;
                    $scope.locateNumber = $scope.locateNumbers();

                    $("#loading").css('display', 'none');
                    $("#ctrl").css('visibility', 'visible');
                    $scope.master = angular.copy($scope.model);
                });
            };

            $scope.init();

            $scope.reset = function () {
                if (confirm('Are you sure you want to discard all your changes?')) {
                    $scope.model = angular.copy($scope.master);
                    $(".selected").removeClass("selected");

                    $scope.locateNumber = $scope.locateNumbers();
                };
            };

            $scope.removeLocate = function (remove) {
                if (confirm('Are you sure you want to remove this location number?')) {
                    var oldLines = $scope.locateNumber;
                    $scope.labor = [];
                    angular.forEach(oldLines, function (line) {
                        if (line != remove) $scope.locateNumber.push(line);
                    });
                }
            };

            $scope.locateNumbers = function () {
                if (!$scope.model) {
                    return null;
                }

                var lines = [];
                angular.forEach($scope.model, function (item) {
                    if (item.IsActive) {
                        lines.push(item);
                    }
                });
                return lines;
            };

            $scope.addLocateLine = function () {
                $scope.locateNumber.push({
                    locationNum: ''
                });
            };

            $scope.dirty = function () {
                if ($scope.model === undefined) {
                    return false;
                }
                var isDirty = !angular.equals($scope.locateNumber, $scope.master.locateNumbers);
                if (isDirty) {
                    $scope.notice = null;
                }
                return isDirty;
            };

            $scope.save = function () {
                $scope.model.Size = $scope.locateNumber.length;
                $scope.model.locateNumbers = $scope.locateNumber;

                $http({
                    method: 'post',
                    url: '@(Url.Action<WorkorderController>(c => c.AssignLocate(Model.Id,null)))',
                    headers: {
                        "Content-Type": 'application/json',
                        Accepts: 'application/json'
                    },
                    data: { wo: $scope.model }
                }).success(function (data, status, headers, config) {
                    $scope.init();
                }).error(function (data, status, headers, config) {
                    alert('An error has occurred. Please try again later or contact an administrator');
                });
            };
        };
函数locateController($scope,$http){
$scope.init=函数(){
$http.get('@(Url.Action(c=>c.getLocateNumber(Model.Id)))).success(函数(数据){
$scope.model=数据;
$scope.locateNumber=$scope.locateNumber();
$(“#加载”).css('display','none');
$(“#ctrl”).css('可见性','可见');
$scope.master=angular.copy($scope.model);
});
};
$scope.init();
$scope.reset=函数(){
if(确认('您确定要放弃所有更改吗?')){
$scope.model=angular.copy($scope.master);
$(“.selected”).removeClass(“selected”);
$scope.locateNumber=$scope.locateNumber();
};
};
$scope.removeLocate=函数(删除){
如果(确认('您确定要删除此位置号吗?')){
var oldLines=$scope.locateNumber;
$scope.labor=[];
角度。forEach(旧线条、函数(线条){
如果(行!=删除)$scope.locateNumber.push(行);
});
}
};
$scope.locateNumbers=函数(){
如果(!$scope.model){
返回null;
}
var行=[];
angular.forEach($scope.model,function(项目){
如果(项目IsActive){
行。推送(项目);
}
});
回流线;
};
$scope.addLocateLine=函数(){
$scope.locateNumber.push({
locationNum:'
});
};
$scope.dirty=函数(){
如果($scope.model==未定义){
返回false;
}
var isDirty=!angular.equals($scope.locateNumber,$scope.master.locateNumber);
如果(isDirty){
$scope.notice=null;
}
回报率;
};
$scope.save=函数(){
$scope.model.Size=$scope.locateNumber.length;
$scope.model.locateNumber=$scope.locateNumber;
$http({
方法:“post”,
url:“@(url.Action(c=>c.AssignLocate(Model.Id,null))”,
标题:{
“内容类型”:“应用程序/json”,
接受:“application/json”
},
数据:{wo:$scope.model}
}).success(函数(数据、状态、标题、配置){
$scope.init();
}).error(函数(数据、状态、标题、配置){
警报('发生错误。请稍后重试或与管理员联系');
});
};
};
以下是HTML:

<div class="modal hide" id="assignLocate" data-ng-controller="locateController">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">×</button>
        <h3 class="addRow">Locate Number <button type="button" class="btn btn-warning btn-mini" data-ng-click="addLocateLine()">Add</button></h3>
    </div>
    <div>
        <div class="span3 offset1">
            <table cellpadding="0" cellspacing="25" border="0" class="table" id="locateNumbers">
                <thead>
                    <tr>
                        <th>Locate Number</th>
                        <th>Action</th>
                    </tr>
                </thead>
                <tbody>
                    <tr ng-repeat="num in locateNumber">
                        <td>
                            <ng-form name="LocateNum">
                                <input type="text" ng-model="num.LocateNum" class="span2" required name="Input"/>
                                <span class="alert-error" ng-show="LocatenNum.Input.$error.required"><strong>*Required</strong></span>
                            </ng-form>
                        </td>
                        <td>
                            <button class="btn btn-mini btn-danger" ng-click="removeLocate(line)">Remove</button>
                        </td>
                    </tr>
                </tbody>
            </table>
            <br /><br />
            <div>
                <div class="span3" style="padding-bottom:25px; margin-left: 0px">
                    <button type="button" class="btn btn-inverse" ng-click="reset()" ng-disabled="!dirty()">Reset</button>
                    <button type="button" class="btn btn-primary pull-right" ng-disabled="form.$invalid" ng-click="save()" ng-disabled="!dirty()">Save</button>
                </div>
            </div>
        </div>
    </div>
</div>

×
查找号码添加
定位号码
行动
*必需
去除


重置 拯救
这是一把js小提琴:
以下是我注意到的问题:

  • HTML中没有“ng应用程序”
  • locateNumbers
    函数有时返回
    null
    ,但代码的其他部分希望
    locateNumbers
    是数组

  • 我不排除进一步的功能。更改您的示例可在此处找到:

    我的主要问题是我有2个ng应用程序。但你的评论仍然是正确的。感谢您抽出时间回答。