我对如何使用angularjs构建类似博客的网站感到有些困惑.
如果你想到一个普通的博客,,,并说,我正在使用php和mysql构建它..我不明白的是我如何使角度得到一个基于id的文章..
我可以为所有文章的列表加载数据..我可以为单个页面加载数据(来自静态json),我了解如何发送http请求,但我如何访问
mysite.com/page?id=1 or
mysite.com/page?id=2 or
mysite.com/page?id=3
Run Code Online (Sandbox Code Playgroud)
显然,我想为每个单独的博客文章加载相同的模板..但我还没有看到一个简单解释这个问题的例子.
如果我的数据库中有三个帖子,ID为1,2,3角度是如何生成每个单独文章的链接的?我知道我可以加载数据来组装网址但是网址是什么?我想我对路由感到困惑.
你能推荐一个SIMPLE,可以理解的例子吗?你能建议怎么想这个吗?
谢谢!
我正在尝试编写it('should toggle menu', () => {})单元测试,但很难访问包含切换方法的指令的属性。
我有一个由多个组件/指令组成的可重用组件
ToggleComponent
ToggleDirective
ToggleMenuDirective
Run Code Online (Sandbox Code Playgroud)
这是我的 ToggleDirective:
export class ToggleDirective implements OnInit {
@HostBinding('class.toggler-toggle') toggleClass = true;
toggle: boolean;
visible = false;
constructor(private toggler: ToggleService, private el: ElementRef) { }
ngOnInit(): void {
this.toggler.nowToggle.subscribe(toggle => this.toggle = toggle);
}
@HostListener('document:click', ['$event'])
onVoidClick(): void {
this.visible = this.el.nativeElement.contains(event.target) ? !this.visible : false;
this.toggler.setToggleState(this.visible);
}
}
Run Code Online (Sandbox Code Playgroud)
在编写单元测试时,我使用的是模拟模板。
使用这样的模拟模板时,我将如何访问/测试 ToggleDirective 中的方法:
import { Component } from '@angular/core';
import { TestBed } from '@angular/core/testing';
import …Run Code Online (Sandbox Code Playgroud) 我正在学习使用yarn link来处理一个包,并在主机应用程序中反映了更改,我要么没有得到某些东西,要么某些东西不起作用。
它全部内置于 angular5..
我有一个包含,除其他外,一个应用程序MyApp的@org/my-package在node_modules。
我需要对 my-package 进行更改,以便为我yarn link用来创建符号链接和在 MyApp 中测试包的更改提供服务。
这就是我所做的...
在我的包中,我运行了一个构建。它创建分发文件。然后我 cli 进入 dist 包并运行yarn link.. 这是成功的.. 我得到了yarn link @org/my-package在 MyApp cli 中使用的说明..
然后我转到 MyApp,然后运行yarn link @org/my-package. 这也是成功。。
但是,当我在 my-package 中进行更改并再次运行构建时,它们不会反映在 MyApp 中。
我不明白什么?
我没有错误。
被@org/my-package认为是node_modules在MyApp的应该是有或没有?yarn link在 my-package 中的 dist 上不是要覆盖那个吗?
无论我搜索多少,看起来 yarn 文档都对这个主题有点了解。
我正在寻找一种方法来绑定范围内的三维数组中的数据与我的视图..
我的范围(简短版)看起来像这样
$scope.publicationData = [
{ pubId:'1' , pubName:'Level 1 A' , pubCat:[
{ pubCatId:'1' , pubCatName:'Level 2 A', pubSubCat:[
{ pubSubCatId:'1' , pubSubCatName:'Level 3 A' },
{ pubSubCatId:'2' , pubSubCatName:'Level 3 B' }
]
},
{ pubCatId:'2' , pubCatName:'Level 2 B', pubSubCat:[
{ pubSubCatId:'3' , pubSubCatName:'Level 3 C' },
{ pubSubCatId:'4' , pubSubCatName:'Level 3 D' }
]
}
]
}];
Run Code Online (Sandbox Code Playgroud)
在视图中,我有成功呈现第一个和第二个数组维度的代码,但我无法从pubSubCatId或pubSubCatName获取值
HTML +角度视图
<div ng-controller="myPublictionCtrl">
<div ng-repeat="publication in publicationData">
<ul>
<li >
<!-- This works -->
{{publication.pubId}}. {{publication.pubName}}
</li> …Run Code Online (Sandbox Code Playgroud) 我暂时没有看到眼睛..下面的代码引发了一个错误
错误:value.split不是函数
是一种分裂简单字符串的angularjs方式
var value = "7,9";
$scope.getTemplate = function(value){
var values = value.split(",");
value1 = values[0];
value2 = values[1];
$scope.templateid = value1;
$scope.userid = value2;
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种与此示例相反的方法,该示例取自angularjs ng-disabled文档... http://docs.angularjs.org/api/ng.directive:ngDisabled
在此示例中,选中该框将禁用该按钮.我需要恰恰相反,我需要选中复选框以启用禁用按钮.有人可以帮我解决这个问题.
<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/1.2.0/angular.min.js"></script>
</head>
<body>
Click me to toggle: <input type="checkbox" ng-model="checked"><br/>
<button ng-model="button" ng-disabled="checked">Button</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
谢谢!
我想根据我从json对象收集的搜索参数构造一系列雄辩的WHERE子句.
像这样的东西(不要介意对象的语法,,,它只是演示的解释):
$searchmap = "
{
"color": "red",
"height": "1",
"width": "2",
"weight": "",
"size": "",
}";
Run Code Online (Sandbox Code Playgroud)
然后我拿对象并解码得到一个搜索数组......
$search = json_decode($searchmap, true);
Run Code Online (Sandbox Code Playgroud)
如果我的体重和大小设置为null或者是一个"空字符串",我会有一个看起来像这样的雄辩代码.
$gadgets = Gadget::where('color', '=', $search['color'])
->where('height', '=', $search['height'])
->where('width', '=', $search['width'])
->paginate(9);
Run Code Online (Sandbox Code Playgroud)
如果他们有一个值,那么雄辩的代码就像这样......
$gadgets = Gadget::where('color', '=', $search['color'])
->where('height', '=', $search['height'])
->where('width', '=', $search['width'])
->where('weight', '=', $search['weight'])
->where('size', '=', $search['size'])
->paginate(9);
Run Code Online (Sandbox Code Playgroud)
有没有办法动态完成这个.
我想这个问题应该是有一种方法可以根据给定的参数动态链接where子句吗?
在伪上下文中,我希望做这样的事情
$gadgets = Gadget::
foreach ($search as $key => $parameter) {
if ( $parameter <> '' ) {
->where($key, '=', $parameter)
}
}
->paginate(9); …Run Code Online (Sandbox Code Playgroud) 在Laravel 4.2中,当使用eloquent在数据库中创建记录时,我们可以创建created_at和updated_at时间戳.
我想在我正在使用的表中添加第三列,expires并且我想将该列的值设置为created_at + 72 hours
是否有"Laravel"方式来做到这一点?要访问created_at值?或者我应该采用不同的方法吗?
我正在寻找方法下载一个stringfied json对象作为文件..
我确实有一个解决方案,如这个小提琴示例中所示:
我的工作版看起来像这样
HTML
From data attribute of span:
<span id="a-data"></span>
<span id="obj-data" data-obj2='{"obj-1": "text-1","obj-2": "text-2","obj-3": "text-3"}'></span>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
var obj = $("#obj-data").data("obj2");
var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(obj));
$('<a href="data:' + data + '" download="data.json">Download Me</a>').appendTo("#a-data");
Run Code Online (Sandbox Code Playgroud)
如果我可以使用这个HTML,我更喜欢.你能建议一种接近的方法吗?
From data attribute of self:
<div id="data" data-obj='{"obj-1": "text-1","obj-2": "text-2","obj-3": "text-3"}'>
Download Me
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个控制器,它发出xhr请求来检索一些数据..
$scope.mbProductImages = [];
$http.get('product.json').success(function(data) {
$scope.productDetails = data;
$scope.mbProductImages = $scope['productDetails']['product_images'];
console.log($scope.mbProductImages);
for(key in $scope.mbProductImages){
if ($scope.mbProductImages[key].current == true) {
$scope.currentImage = $scope.mbProductImages[key]['img_lg'];
}
}
});
Run Code Online (Sandbox Code Playgroud)
我真正需要的是一个指令从$scope.productDetails控制器中加载的(通过属性值)检索数据,我需要在指令的控制器或链接函数中使用此代码而不是$ parent控制器...
$scope.mbProductImages = $scope[$attrs.content][$attrs.object];
console.log($scope.mbProductImages);
for(key in $scope.mbProductImages){
if ($scope.mbProductImages[key].current == true) {
$scope.currentImage = $scope.mbProductImages[key]['img_lg'];
}
}
Run Code Online (Sandbox Code Playgroud)
其中,$scope[$attrs.content][$attrs.object];在该指令相当于$scope.productDetails从控制器...
所以我的控制器应该只有这个:
$http.get('product.json').success(function(data) {
$scope.productDetails = data;
}
Run Code Online (Sandbox Code Playgroud)
而我的指令的控制器将拥有其他代码.
我的傻瓜:http://plnkr.co/edit/xErYnlj04P5LQsMedVWi?p =preview
发生的事情是,父控制器xhr请求获取数据所需的时间比指令加载要长,所以我得到了$scope.mbProductImages unfined
如何使指令等待来自控制器的数据加载或检查从指令加载的时间然后应用该值?
在@Chandermani的帮助下,我能够看到我的错误并找到了一个很好的解决方案.
控制器:
app.controller('MainCtrl', function($scope, $http) {
$http.get('mydata.json').success(function(data) {
$scope.productDetails …Run Code Online (Sandbox Code Playgroud) javascript ajax angularjs angularjs-directive angularjs-scope