我正在创建一个SPA,并希望实现KnockoutJS。我正在使用framework4。 当我尝试创建ViewModel时,我收到语法错误,指出预期标识符或字符串
var vm = {
BankmedStatements: ko.observableArray(),
};
Ajax Call:
function GetStatements(){
$.ajax({
url: "Default.aspx/LoadBankmedStatements",
type: "POST",
contentType: "application/json",
success: function (response) {
alert("Hi");
vm.BankmedStatements(ko.utils.unwrapObservable(ko.mapping.fromJS(response.d)));
},
error: function(jqXHR, textStatus, errorThrown){
alert(errorThrown);
}
});
};
代码隐藏:
[System.Web.Services.WebMethod]
public static List<BankmedStatements> LoadBankmedStatements()
{
List<BankmedStatements> statements = new List<BankmedStatements>();
Live_DailyEntities db = new Live_DailyEntities();
foreach (var item in db.BankmedStatments.Where(u=>u.fFileName == "ppn_recon_20131011.csv"))
{
}
return statements;
}
我不确定我是否忘记引用某些图书馆,但这里是我的参考资料:
<script src="Scripts/jquery.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-migrate-1.2.1.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-1.10.2.js" type="text/javascript"></script>
<script src="Scripts/knockout-3.0.0.debug.js" type="text/javascript"></script>
<script src="Scripts/knockout-3.0.0.js" type="text/javascript"></script>
<script src="Scripts/knockout.mapping-latest.debug.js" type="text/javascript"></script>
<script src="Scripts/knockout.mapping-latest.js" type="text/javascript"></script>
答案 0 :(得分:1)
首先通过消除重复来修复您的引用。
<script src="Scripts/jquery-1.10.2.js" type="text/javascript"></script>
<script src="Scripts/jquery-migrate-1.2.1.min.js" type="text/javascript"></script>
<script src="Scripts/knockout-3.0.0.js" type="text/javascript"></script>
<script src="Scripts/knockout.mapping-latest.js" type="text/javascript"></script>
您使用的是WebAPI吗?看起来你是这样的,这些对象变成了JSON,这很好。但是,在你的成功函数中
vm.BankmedStatements(ko.utils.unwrapObservable(ko.mapping.fromJS(response.d)));
什么是“response.d”。很可能你的响应是一个JSON对象数组,所以response.d是一个无效的引用。