2014-06-11 173 views
-1

所以继承人如何工作到目前为止,索引页允许您创建一个游戏。然后将游戏发布到/ data/games(Gamelist.html)上。我想要一个永久删除列表中的游戏的按钮。我目前有一个删除按钮,但它什么都不做。如何使删除按钮永久删除。

指数(从这里制作的游戏)

<html> 

<head> 
<title>Planning Poker</title> 
<style> 
    .inlinetext { 
     display: inline; 
    } 
</style> 
<script src="Scripts/jquery-2.1.1.js"></script> 
<script src="Scripts/knockout-3.1.0.js"></script> 
<script type="text/javascript"> 
    $(function() { 
     $('#button').on('click', function (data) { 
      $.post('data/games/create/?title=5', function (d) { console.log(d) }); 
     }) 
    }); 
</script> 
</head> 



<body> 
<h3 class='inlinetext'> Create Game: </h3> 
    <input type="text" id="testtext" name="ime"> 
    <button id="button" >Create</button> 


    </body> 

</html> 

控制器

using PlanningPoker.Models; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Web.Http; 

namespace PlanningPoker.Controllers 
{ 
public class GMController : ApiController 
{ 
    private static List<Game> games = new List<Game>() { 
      new Game() { 
       ID = Guid.NewGuid(), 
       Title = "D&D" 
      } 
     }; 

    [Route("data/games")] 
    public IEnumerable<Game> GetAllGames() { 
     return games; 
    } 

    [Route("data/games/create"), HttpPost] 
    public Guid CreateGame(string title) { 
     Game g = new Game() { 
      ID = Guid.NewGuid(), 
      Title = title 
     }; 

     games.Add(g); 

     return g.ID; 
    } 
} 
} 

游戏列表(HTML)

<title>Game List</title> 
<script src="Scripts/jquery-2.1.1.js"></script> 
<script src="Scripts/knockout-3.1.0.js"></script> 
<script src="Gamelist.js"></script> 
    </head> 
    <body> 

      <h4>Games</h4> 

      <ul data-bind="foreach: $data.games"> 
       <li> 
        Game <span data-bind="text: $index"> </span>: 
        <span data-bind="text: Title"> </span> 
        <a href="#" data-bind="click: $parent.removeGame">Remove</a> 
       </li> 
      </ul> 
      <button data-bind="click: addGame">Add</button> 


    </body> 
    </html> 

Gamlist(JavaScript)的

function AppViewModel() { 
var self = this; 

self.games = ko.observableArray([]); 

$.getJSON("/data/games", function (d) { 
    self.games(d); 
}); 

self.addGame = function() { 
    self.game.push({ name: "Created On " + new Date() }); 
}; 

self.removeGame = function() { 
    self.game.remove(this); 
} 
} 
$(function() { 
ko.applyBindings(new AppViewModel()); 
}); 
+0

请使用[的jsfiddle(http://jsfiddle.net/)或别的东西... – Nano

+0

...除了把你的代码放在这里。 –

回答

0

淘汰赛将自动传回目前项目作为点击事件绑定参数...

self.removeGame = function(game) { 
    self.games.remove(game); 
} 
+0

另外,请注意,在您的js示例中,您正在使用self.game而不是self.games ... – beauXjames

+0

它会删除,但是当我点击刷新它仍然存在。我希望它永远消失,一旦我点击删除 – user3662011

+0

好,是的...你也必须从你的数据源中删除它。你需要在self.removeGame方法中触发一个异步调用到你的路由GMController – beauXjames