我正在学习angularjs,我注意到控制器执行了两次.
我有一个非常简单的小提琴示例,显示了这里的行为
我在学习服务的过程中构建了示例,起初我认为是将服务注入控制器,但我评论了与服务相关的所有代码,并且控制器仍然执行了两次.
我的例子有效,但我担心我做错了什么.
<div ng-app="MyApp">
<div ng-controller="MyCtrl">
{{data1}}
</div>
</div>
var app = angular.module('MyApp', [])
app.service('Service1', function(){
return {
ajxResponse1: 'dataFromService1'
};
});
function MyCtrl($scope, Service1){
alert('Entering MyCtrl');
$scope.data1 = Service1.ajxResponse1;
alert('Exiting MyCtrl');
}
Run Code Online (Sandbox Code Playgroud) 我可以将过程可视化的唯一方法是:在区块链中搜索与正在处理的交易具有相同源地址的所有交易,将它们全部加起来(包括正在处理的 trx)以验证它们加起来小于或等于到源交易金额。
对每笔比特币交易都这样做听起来效率极低。
他们是如何真正做到的?
我正在编写一个web.api控制器,它使用投影查询Azure表存储表,并需要返回投影列的json字符串.
结果返回投影,但它还为每个实体包括基本属性PK,RK,Timestamp和eTag.
我要重返银幕JSON字符串只用投影列,但由于基本属性包括我不得不通过序列化到JSON前剥离从各实体基本属性的额外步骤.
有没有办法让查询只返回投影列?
这是我的代码返回一个TableQuery:
class Poco:TableEntity{
... Col1
... Col2
}
var rangeQuery = new TableQuery<Poco>().Where(filter).Select(new List<string>
{ "col1", "col2" });
var result = table.ExecuteQuery(rangeQuery).ToList();
Run Code Online (Sandbox Code Playgroud)
以下是返回DynamicTableEntity的相同代码:
class Poco{
... Col1
... Col2
}
var rangeQuery = new TableQuery();
rangeQuery.Where(filter).Select(new List<string>
{ "col1", "col2" });
var result = table.ExecuteQuery(rangeQuery).ToList();
Run Code Online (Sandbox Code Playgroud)
这些示例中的每一个都返回基本相同的东西,但在倒置结构中,TableQuery返回一个Poco元素列表,但每个元素包含一个包含所有基本属性的"base"属性.DynamicTableEntity返回基本属性元素的列表,其中每个元素包含一个"属性"属性,该属性包含投影列的数组.