@Ward,谢谢你的回答。
首先我忘了提到我使用的是 Breeze 1.4.0 版。
您已经检查了网络流量,并且看到 {MyUnmappedProperty: "testString} 实际上是通过网络传输的 :是的,我已经检查过了,它包含在从服务器发送的 JSON 中。
需要对 spa 模板进行 3 次小添加才能获得我遇到的行为。
在todo.view.html
我添加按钮“myGetBtn”和一个带有角度绑定的跨度“mySpan”:
...
<button data-ng-click="addTodoList()">Add Todo list</button>
<br/>
<p>
<button id="myGetBtn" ng-click="getTodos(true)">Get todos</button>
</p>
<article class="todoList" data-ng-repeat="list in todoLists">
<header>
<form data-ng-submit="endEdit(list)">
<span id="mySpan">myNotMappedProperty: {{list.MyNotMappedProperty}}</span>
<input data-ng-model="list.title"
data-selected-when="list.isEditingListTitle"
data-ng-click="clearErrorMessage(list)"
data-on-blur="endEdit(list)"/>
</form>
</header>
...
在 .Net POCO 类 TodoList 我添加
[NotMapped]
public string MyNotMappedProperty { get { return "testString"; } }
在todo.model.js
我这样修改构造函数中:
function TodoList() {
this.title = "My todos"; // defaults
this.userId = "to be replaced";
this.MyNotMappedProperty = "";
}
现在,如果您运行应用程序并成功登录{{list.MyNotMappedProperty}}
,则会显示空字符串,如果您随后按下“Get Todos”按钮,则会 {{list.MyNotMappedProperty}}
显示值“testString”。
在这两种情况下,查询都是相同的,返回的 Json 如下:
[{"$id":"1","$type":"TodoTest.Models.TodoList, TodoTest","TodoListId":5,"UserId":"kostas","Title":"My todos","MyNotMappedProperty":"testString","Todos":[{"$id":"2","$type":"TodoTest.Models.TodoItem, TodoTest","TodoItemId":4,"Title":"dasdas","IsDone":false,"TodoListId":5,"TodoList":{"$ref":"1"}}]}]
我想在不按下我添加的按钮的情况下首先显示“testString”。
我不知道我提供的信息是否足以重现该行为,所以如果您需要任何其他信息,请告诉我。
谢谢你。