小编GRo*_*ing的帖子

Angularjs - 动态页面,相同模板,如何通过id访问和加载文章

我对如何使用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,可以理解的例子吗?你能建议怎么想这个吗?

谢谢!

javascript php angularjs

5
推荐指数
1
解决办法
7544
查看次数

如何在 Angular 5 中访问测试主机中的指令属性?

我正在尝试编写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)

unit-testing jasmine karma-jasmine angular

5
推荐指数
1
解决办法
2751
查看次数

纱线链接,对链接包的更改未反映在主机应用程序中

我正在学习使用yarn link来处理一个包,并在主机应用程序中反映了更改,我要么没有得到某些东西,要么某些东西不起作用。

它全部内置于 angular5..

我有一个包含,除其他外,一个应用程序MyApp的@org/my-packagenode_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 文档都对这个主题有点了解。

yarnpkg npm-link angular5

5
推荐指数
1
解决办法
6281
查看次数

AngularJS多维数组

我正在寻找一种方法来绑定范围内的三维数组中的数据与我的视图..

我的范围(简短版)看起来像这样

$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)

javascript arrays multidimensional-array angularjs

4
推荐指数
1
解决办法
3万
查看次数

Angularjs - Split String问题

我暂时没有看到眼睛..下面的代码引发了一个错误

错误: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)

javascript angularjs

4
推荐指数
1
解决办法
3万
查看次数

Angularjs - 复选框禁用和启用

我正在寻找一种与此示例相反的方法,该示例取自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)

谢谢!

javascript angularjs

3
推荐指数
1
解决办法
1万
查看次数

Laravel - 根据动态参数扩展Eloquent子句

我想根据我从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)

php laravel eloquent laravel-4

3
推荐指数
1
解决办法
2317
查看次数

Laravel 4.2 - 增加时间戳的时间

在Laravel 4.2中,当使用eloquent在数据库中创建记录时,我们可以创建created_at和updated_at时间戳.

我想在我正在使用的表中添加第三列,expires并且我想将该列的值设置为created_at + 72 hours

是否有"Laravel"方式来做到这一点?要访问created_at值?或者我应该采用不同的方法吗?

php laravel-4

3
推荐指数
1
解决办法
1728
查看次数

使用jQuery将json对象下载为json文件

我正在寻找方法下载一个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)

html javascript jquery json

3
推荐指数
1
解决办法
5276
查看次数

Angularjs - 指令控制器加载速度比app控制器快 - 值未定义

我有一个控制器,它发出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

2
推荐指数
1
解决办法
5867
查看次数