我尝试使用sharepoint 2013 rest api和breezejs。 我收到错误
A nonnullable DataProperty cannot have a null defaultValue. Name: undefined
当breezejs验证返回的元数据(_api / $ metadata)时。 使用breeze.EntityManager(“/ _ vti_bin / listdata.svc /”)都可以。
有哪些方法可以解决这个问题?
<script src="/_layouts/15/SharePointProject7/scripts/angular.min.js"></script>
<script src="/_layouts/15/SharePointProject7/scripts/q.min.js"></script>
<script src="/_layouts/15/SharePointProject7/scripts/datajs-1.1.1.min.js"></script>
<script src="/_layouts/15/SharePointProject7/scripts/breeze.min.js"></script>
<script src="/_layouts/15/SharePointProject7/scripts/breeze.toq.js"></script>
<script src="/_layouts/15/SharePointProject7/scripts/app.js"></script>
<div data-ng-app="app">
<div data-ng-controller="Ctrl2">
<ul>
<li data-ng-repeat="c in customers"><input type="text" data-ng-model="c.Title" /></li>
</ul>
<button type="button" data-ng-click="save()">Save</button>
</div>
</div>
var app = angular.module('app', []);
app.run(['$q', '$rootScope', function ($q, $rootScope) {
breeze.core.extendQ($rootScope, $q);
}]);
app.service('listData', function () {
breeze.config.initializeAdapterInstances({ dataService: "OData" });
var manager = new breeze.EntityManager("/_api/");
var changes;
this.getItems = function () {
var query = breeze.EntityQuery.from("Lists");
return manager.executeQuery(query).to$q();
};
this.saveItems = function () {
if (manager.hasChanges()) {
changes = manager.getChanges();
manager.saveChanges().to$q(saveSucceeded, saveFailed);
}
else {
alert("Nothing to save");
};
};
function saveSucceeded() {
alert("OK");
};
function saveFailed(error) {
alert(error.message);
};
});
app.controller('Ctrl2', function ($scope, listData) {
function initialize() {
listData.getItems().then(querySucceeded, _queryFailed);
};
function querySucceeded(data) {
$scope.customers = data.results;
}
function _queryFailed(error) {
alert(error.message);
}
$scope.save = function () {
listData.saveItems();
};
initialize();
});
答案 0 :(得分:0)
最好手写实体配置,因为SP元数据可能很大,并且在应用程序加载开始时将其拉下来并不是一个好主意。
首先从breeze labs获取SharePoint微风适配器。
此处详细信息http://www.andrewconnell.com/blog/getting-breezejs-to-work-with-the-sharepoint-2013-rest-api
该帖子逐步推进了这项工作。