Вы можете отправить событие своему родителю, уведомляя родителя о том, что кнопка удаления нажата в вашем дочернем компоненте.
Вы можете проверить это в документации Vue .
Вот как выглядят ваши компоненты:
TodoCard.vue
:
{{ todo.text }}
App.vue
:
Лучшей практикой было бы заставить JSON описать объект немного лучше:
"Unit":{
"UnitYear":"2018",
"UnitModel":"F250 Super Duty"
}
"Asset":{
"AssetYear":"2019",
"AssetModel":"Corvette Stingray"
}
Имея то, что у вас есть сейчас, вы можете добавить метод к каждому классу:
public bool IsValid()
{
return Model != null && Year.Date == DateTime.MinValue;
}
[ 118] А затем сделайте следующее для каждого класса, который вы хотите протестировать:
var stringUnit = "{\"UnitYear\":\"2018\",\"UnitModel\":\"F250 Super Duty\"}";
var assetUnit = "{\"AssetYear\":\"2019\",\"AssetModel\":\"Corvette Stingray\"}";
var unit = Newtonsoft.Json.JsonConvert.DeserializeObject<Asset>(stringUnit);
if (unit.IsValid())
{
Console.WriteLine(unit.AssetModel);
}
else
{
Console.WriteLine("Json can't convert this");
}
То, на что я был бы более склонен взглянуть, было бы примерно так:
Создать тип Enum и Unit Class:
public class Unit
{
public DateTime DateTime { get; set; }
public string Model { get; set; }
public UnitType UnitType { get; set; }
public bool IsValid()
{
return Model != null && DateTime == DateTime.MinValue || UnitType != UnitType.Unknown;
}
}
И затем создайте Enum для JSON Converter от Newtonsoft:
[JsonConverter(typeof(StringEnumConverter))]
public enum UnitType
{
Unknown = 0,
Asset,
Unit
}
И затем вы можете попытаться десериализовать все JSON точно так же: [ 1112]
string jsonString = "{\"Year\":\"2019\",\"Model\":\"Corvette Stingray\",\"UnitType\":\"Asset\"}";
var resultUnit = JsonConvert.DeserializeObject<Unit>(jsonString);
if (resultUnit.IsValid())
{
// This works, do the right thing. When the type matters access resultUnit.UnitType
}
else
{
//Throw an exception, really badly formed or an Unknown type
}
This will be used for mapping your response to the model JsonConvert.DeserializeObject<Unit>(response)
public class Unit
{
public string UnitYear { get; set; }
public string UnitModel { get; set; }
}
Make sure that the property names are the same names as your json object that you are passing through