Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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 TypeError:无法获取属性';项目';指未定义的或空的引用_Javascript_Angularjs_Asp.net Mvc - Fatal编程技术网

Javascript TypeError:无法获取属性';项目';指未定义的或空的引用

Javascript TypeError:无法获取属性';项目';指未定义的或空的引用,javascript,angularjs,asp.net-mvc,Javascript,Angularjs,Asp.net Mvc,我对angular js不熟悉,我面临着这个问题(可能是一个简单的问题,但作为初学者,我不知道为什么会发生这种情况)。当我尝试为我的$scope for模型分配一些值时,总是会出现以下错误。其中之一如下 HTML代码 <input type="text" id="StartDate" class="col-sm-2" ng-model="project.StartDate" /> 我得到的错误是 TypeError: Unable to get property 'project'

我对angular js不熟悉,我面临着这个问题(可能是一个简单的问题,但作为初学者,我不知道为什么会发生这种情况)。当我尝试为我的$scope for模型分配一些值时,总是会出现以下错误。其中之一如下

HTML代码

<input type="text" id="StartDate" class="col-sm-2" ng-model="project.StartDate" />
我得到的错误是

TypeError: Unable to get property 'project' of undefined or null reference

感谢您的帮助,因为我在很多地方都遇到了这个错误。

首先将
$scope.project
声明为空对象

一种方法是

$scope.project = {}
$scope.project.StartDate = new Date().toISOString().split("T")[0];
或者你可以这样做

$scope.project = { 
    'StartDate' : new Date().toISOString().split("T")[0]
}
调用该函数时,请将
范围
也作为参数删除

function  DateUpdate(){ 

删除
DateUpdate
函数参数
$scope
,该参数将终止现有
$scope
的存在,并且
$scope
在函数内部变为
未定义的

function DateUpdate() { //<-- remove `$scope` which isn't required at all.

function DateUpdate(){//已经尝试过了。但不幸的是,这也不起作用。myApp.controller('ProjectCtrl',['$scope','http','fileUpload','$filter',function($scope,$http,$filter,APICall,fileUpload){$scope.formsubmit=function(){//code here}function DateUpdate($scope){debugger;var c=new Date();$scope.project.StartDate=new Date().toISOString().split(“T”)[0];}DateUpdate();$scope.uploadFile=function(){//code here};$scope.fetchDetails=function(){//code here};@Aneez用this
myApp.controller替换控制器('ProjectCtrl'、['$scope'、'$http'、'$filter'、'APICall'、'fileUpload'函数($scope、$http、$filter、APICall、fileUpload){$scope.formsubmit=function(){}function DateUpdate(){var c=new Date();$scope.project={'StartDate':new Date().toISOString().split(“T”)[0]}DateUpdate())$scope.uploadFile=function(){};$scope.fetchDetails=function(){}]);
Bingo!!这很有效。非常感谢。这应该是我在任何地方都应该使用的方法。:)是的,请始终确保
函数($scope,$http,$filter,APICall,fileUpload)
遵循与字符串注入相同的顺序
['$scope','$http','$filter','APICall','fileUpload',
。像这样
myApp.controller('ProjectCtrl',['$scope','$http','$filter','APICall','fileUpload',函数($scope,$http,$filter,APICall,fileUpload){
TypeError:无法设置未定义或空的属性“StartDate”reference@Aneez正如sachila已经建议的那样,在从startdate属性访问它之前,您必须定义
$scope.project=“{}
。检查他的第一个建议选项。。
function DateUpdate() { //<-- remove `$scope` which isn't required at all.