AngularJSとWebAPIの新機能です。私は2つのVisual Studio 2015プロジェクト、EventViewer(AngularJS)とAppData(WebAPI)を持っており、WebサイトをホストするためにIIS Express 7を設定しました。私はAngularJSプロジェクトへの道筋をウェブサイトの道具として持っており、うまくいきます。 AppDataプロジェクト(WebAPI)では、Webサイトにアプリケーションを追加しました。 WebアプリケーションのパスとしてWebAPIプロジェクトを格納するフォルダへの物理パスを使用しています。これは間違いありませんか?角度アプリとwebAPIアプリがお互いに会話できるようにすれば十分ですか? AngularJSアプリはWebAPIアプリと通信していないようです。 IISからWebサイトを参照すると、正しいページが表示されますが、データは表示されません。私は何が欠けていますか?どんな助けもありがとう。AngularJSプロジェクトとWebAPIプロジェクトとの通信がありません
AngularJSコントローラ:
'use strict';
eventsApp.controller('EventListController',
function EventListController($scope, eventData) {
$scope.events = eventData.getAllEvents();
});
AngularJSサービス:
eventsApp.factory('eventData', function ($resource) {
var resource = $resource('/data/event/:id', { id: '@id' }, { "getAll": { method: "GET", isArray: true, params: { something: "foo" } } });
return {
getAllEvents: function() {
return resource.query();
}
};
});
WebAPIのコントローラ:
namespace AppData.Controllers
{
public class EventController : ApiController
{
public JToken Get(string id = null)
{
if (id == null)
return GetAllJsonEventsAsArray();
return GetSingleJsonFile(id);
}
private static JToken GetSingleJsonFile(string id)
{
var path = System.Web.Hosting.HostingEnvironment.MapPath("/");
return JObject.Parse(System.IO.File.ReadAllText(path + "../app/data/event/" + id + ".json"));
}
public void Post(string id, JObject eventData)
{
var path = System.Web.Hosting.HostingEnvironment.MapPath("/");
System.IO.File.WriteAllText(path + "../app/data/event/" + id + ".json", eventData.ToString(Formatting.None));
}
private JArray GetAllJsonEventsAsArray()
{
var path = System.Web.Hosting.HostingEnvironment.MapPath("/");
var contents = "";
foreach (var file in System.IO.Directory.GetFiles(path + "../app/data/event/"))
{
contents += System.IO.File.ReadAllText(file) + ",";
}
return JArray.Parse("[" + contents.Substring(0, contents.Length - 1) + "]");
}
}
}