我的Angular应用程序中有产品列表状态和产品编辑/添加状态.
产品列表数据加载到控制器中(我认为我不需要在状态配置中定义解析)从ngResource获取数据:
function InventoryListCtrl (myResource) {
var vm = this;
myResource.query(function (data) {
vm.products = data;
});
}
Run Code Online (Sandbox Code Playgroud)
在编辑控制器上,在我编辑产品后,我回到列表状态,如下所示:
vm.product.$update().$promise;
$state.go('productList');
Run Code Online (Sandbox Code Playgroud)
它不会始终使用新数据加载列表,它通常会在第一次运行时显示旧数据,然后在我进行第二次更新并手动返回列表状态后,它会在每次更新后开始刷新.
我试过这个,但也没有用:
vm.product.$update().$promise;
$state.go('productList', {}, { reload: true });
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
在我的组件模板中,我async在2个位置调用相同Observable的管道.
我应该订阅它并在我的模板中使用返回的数组,或者async在多个模板位置使用相同的Observable管道对性能没有负面影响?
Output Window 当我正在键入或只是单击我正在处理的Angular代码时,Visual Studio Code会自行打开,这非常令人不安.
安装了Angular Language Service插件我没有看到任何设置.
更新
我在Github repo上打开了一个问题.
我正在使用字符串类的扩展方法.在该扩展方法中,我创建了一个StringBuilder实例.
这是代码:
public static string GetPlainTextFromHtml(this string htmlString)
{
StringBuilder sb = new StringBuilder();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlString);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//text()"))
{
string text = node.InnerText;
if (!string.IsNullOrEmpty(text))
sb.Append(text.Trim());
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
它有效但我关心内存管理.静态方法没有实例化,所以如果我在静态方法中实例化一个对象会发生什么.假设我将此静态方法称为100次,内存中是否有100个StringBuilder实例副本?
它会导致内存泄漏吗?当静态方法执行终止时,垃圾收集器是否处置对象实例?
我正在做一个i18n Angular应用程序,到目前为止效果很好.
但是我有不同语言的相同路由字符串,这不是最好的SEO.
对于每种语言,路径数组的"路径"属性是否可能不同?
例如:
const appRoutesEN: Routes = [
{ path: 'crisis-center', component: CrisisListComponent },
{ path: 'hero/:id', component: HeroDetailComponent },
{
path: 'heroes',
component: HeroListComponent,
data: { title: 'Heroes List' }
},
{ path: '**', component: PageNotFoundComponent }
];
Run Code Online (Sandbox Code Playgroud)
是否可以定义appRoutesFR: Routes如果我可以使用它?我要注入LOCALE_ID路由模块吗?如果是这样的话?
Firebase实时数据库以区分大小写的方式接受带字符串的查询.
这仍然适用于Firestore吗?
Visual Studio Code是否.rules存在具有自动完成和错误突出显示功能的文件格式扩展?
我想.rules为 Firebase Realtime Db、Firestore 和云存储配置文件。
firebase visual-studio-code firebase-realtime-database firebase-storage google-cloud-firestore
我计划监视 Firebase 数据库节点以进行创建/删除,并使用 Cloud Functions 将其反映到另一个数据库节点。
这样的操作有限制吗?例如,假设一次添加了 10000 个节点,这应该在其他地方触发 10000 个插入,这是可以接受的吗?
更新:
我在配额部分看到这些限制:
Max concurrent invocations for a background function和Max invocation rate for a background function
这是否意味着如果我发出超过 1000 个请求,rest(对于上面的示例为 9000 个)会被忽略,或者只是完成它们的速度变慢?
我遇到过一种情况,我必须从ng-repeat表达式中更新范围变量(实际上在ng-repeat中的ng-class调用).
<div id="page" ng-controller="MainCtrl">
.
<section id="body" ng-init="countMis = {num:0}">
.
<tbody>
<tr ng-repeat="upperCaseLetter in alphabet.specialsUpper" ng-controller="letterController">
<td>{{upperCaseLetter}}</td>
<td>{{filteredLetter=(upperCaseLetter | lowercase)}}</td>
<td>{{alphabet.specialsLower[$index]}}</td>
<td><span ng-class="lowercaseEqual($index,filteredLetter)"></span></td>
</tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)
在app.js中:
function letterController($scope)
{
$scope.lowercaseEqual = function(indx,letter)
{
var returnStr="";
if(letter == $scope.alphabet.specialsLower[indx])
{
returnStr = "glyphicon glyphicon-ok";
}
else
{
$scope.countMis.num = $scope.countMis.num + 1;
returnStr = "glyphicon glyphicon-remove";
}
return returnStr;
};
}
Run Code Online (Sandbox Code Playgroud)

Ng-repeat位于子控制器中,我想要更新的数据位于其父控制器中.我知道你已多次阅读同一个问题,请继续阅读并查看JsFiddle示例.
因此表达式函数检查特定ng-repeat迭代的过滤数据,如果它与其他一些相应的父范围变量不匹配,则返回一个类,但它也应该更新父范围计数器.由于这些表达式不仅仅评估一次,而是至少一次(因为对摘要进行脏检查),因此对于每种情况,结果计数器增加不止一次.
我通过在ng-repeat之后计算应用于该特定数据的类来解决我的问题(您将在JsFiddle示例中看到).但是我想我将来会遇到同样的问题,所以我想学习如何在ng-repeat迭代的表达式中更新父范围.
我已经放了第二个JsFiddle,我尝试在父控制器和子控件上使用工厂,希望更新两个控制器的公共变量.当我记录(consol.log)每个迭代和工厂方法变量时,它显示迭代次数+ 1(仍为假值),但它没有反映在页面表达式上......根本没有意义.
我很感激任何帮助.谢谢.
javascript angularjs angularjs-scope angularjs-ng-repeat ng-class
首先,我在我的ngDoCheck方法中使用了这个并且完美地工作:
var productChanges = this.differ.diff(this.myProduct);
Run Code Online (Sandbox Code Playgroud)
然后决定检查我的组件的第二个模型的更改并添加以下行:
var companyChanges = this.differ.diff(this.myCompany);
Run Code Online (Sandbox Code Playgroud)
并且两个更改都在单独的if语句中进行,但只有最后一个被调用(companyChanges)
这是预期的行为吗?ngDoCheck仅适用于每个组件的一个对象吗?
为了清楚起见,这是我的完整ngDoCheck方法:
ngDoCheck() {
var productChanges = this.differ.diff(this.myProduct);
//DOESN'T IT CHECK 2 MODELS LIKE SO BELOW ?
//var companyChanges = this.differ.diff(this.myCompany);
if (productChanges) {
// console.log('Product changes detected');
productChanges.forEachChangedItem((r: KeyValueChangeRecord) => {
if (r.currentValue && r.currentValue != r.previousValue) {
this.filterProduct(r.currentValue, r.key);
}
});
}
Run Code Online (Sandbox Code Playgroud)
编辑:通过阅读其他问题和答案,我觉得我需要分享这个:
在组件构造函数中,不同的定义如下:
this.differ = differs.find({}).create(null);
Run Code Online (Sandbox Code Playgroud)
可能这是首先需要改变的.
我想assets在functions包含多个图像文件的文件夹下有一个文件夹(也许它也有一些子文件夹)。根据数据库操作,我想将该assets文件夹(或其子文件夹之一)的部分或全部内容复制到使用该特定db操作指定的 Firebase 存储位置。(或在temp将它们发送到云存储位置之前进行编辑的文件夹下)
这可能吗?我找不到任何相关信息。
我知道我可以首先将这些资产放在 Firebase Storage 下,我只是想将它们放在下面functions以保持我的项目结构干净。此外,存储的 Cloud Function 区域中的任何操作都是按文件进行的,没有批量文件夹操作。
更新:
确实有可能,在使用自定义子文件夹时,需要在 Cloud Functions 中使用正确的文件/文件夹位置。等我有空的时候再写一个答案。
到目前为止,我一直在我的项目存储库模式和依赖注入中实现.我为ORM使用Entity Framework,并且还有一个管理我的存储库的服务层.
我有点想做一些对手头的问题不那么重要的事情.我不太可能更改我的数据库或ORM.对于小型项目,我不需要实施测试.
但我喜欢每次获取数据时都不向数据库发送请求的想法,如果它已经在内存中从那里获取数据.
我的问题是:如果我在Asp.Net MVC应用程序中使用Entiry Framework,而不是使用存储库模式,但仍然在EF的DBContext上使用DI,我可以通过阻止往返数据库服务器读取来获得性能的好处吗?
通过在DbContext上实现DI,我的意思是Ninject示例:
kernel.Bind<MyDBContext>().ToSelf().InRequestScope();
Run Code Online (Sandbox Code Playgroud)
谢谢
asp.net-mvc entity-framework dependency-injection ninject ninject.web.mvc
我有两个具有类似Cloud Functions设置的项目,都直接使用类似于此示例或此示例的 Typescript设置(无Webpack)
其中一个使用Firestore,另一个则不使用.不使用Firestore的那个编译和部署没有错误.
然而,具有Firestore函数的那个在tsc编译时给出了这个错误:
../node_modules/@types/googlemaps/index.d.ts(33,29): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(37,19): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(54,28): error TS2304: Cannot find name 'Node'.
../node_modules/@types/googlemaps/index.d.ts(787,30): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(798,36): error TS2304: Cannot find name 'Node'.
../node_modules/@types/googlemaps/index.d.ts(811,26): error TS2304: Cannot find name 'Node'.
../node_modules/@types/googlemaps/index.d.ts(1135,20): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1136,22): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1137,18): error TS2304: Cannot find name 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1138,22): error TS2304: Cannot find name …Run Code Online (Sandbox Code Playgroud) firebase typescript google-cloud-functions google-cloud-firestore
firebase ×5
angular ×4
angularjs ×2
asp.net-mvc ×1
c# ×1
database ×1
javascript ×1
ng-class ×1
ninject ×1
rxjs ×1
typescript ×1