Angularjs标记表行或列取决于值(Angularjs markup table row or colums depends on value)

有没有办法在行或列上添加类取决于值。 如果列“anzahl”为空,则行背景颜色必须为“灰色”,列“anzahl”背景颜色为“红色”。

    <body ng-app ng-init='articles = [
   {"id":"1","name":"A&R","type":"P77 ","anzahl":"0"},
   {"id":"2","name":"Accuphase","type":"AC5 ","anzahl":"1"},
   {"id":"3","name":"Acoustical Systems","type":"Archon","anzahl":"1"}
  ]'>
  <div class="container">


    <table class="table">
      <tr ng-repeat="article in articles">
        <td>{{article.name}}</td>
        <td>{{article.type}}</td>
        <td>{{article.anzahl}}</td>
      </tr>
    </table>

  </div>

</body>

的jsfiddle


Is there any way to add classes on row or column depends on values. If column "anzahl" is null, the row background-color has to be "gray" and the column "anzahl" background-color goes to "red.

    <body ng-app ng-init='articles = [
   {"id":"1","name":"A&R","type":"P77 ","anzahl":"0"},
   {"id":"2","name":"Accuphase","type":"AC5 ","anzahl":"1"},
   {"id":"3","name":"Acoustical Systems","type":"Archon","anzahl":"1"}
  ]'>
  <div class="container">


    <table class="table">
      <tr ng-repeat="article in articles">
        <td>{{article.name}}</td>
        <td>{{article.type}}</td>
        <td>{{article.anzahl}}</td>
      </tr>
    </table>

  </div>

</body>

jsfiddle


原文:https://stackoverflow.com/questions/28337787
2024-03-30 19:03

满意答案

这应该实现你给出的算法:

template<typename T>
constexpr T roundup_helper( T value, unsigned maxb, unsigned curb ) {
    return maxb<=curb
            ? value
            : roundup_helper( ((value-1) | ((value-1)>>curb))+1, maxb, curb << 1 )
            ;
}

template<typename T,
        typename = typename enable_if<is_integral<T>::value>::type,
        typename = typename enable_if<is_unsigned<T>::value>::type>
constexpr T roundup( T value ) {
    return roundup_helper( value, sizeof(T)*CHAR_BIT, 1 );
}

至少,它似乎在我的测试程序中工作正常。

或者,您可以将v-1v+1移出辅助函数,如下所示:

template<typename T>
constexpr T roundup_helper( T value, unsigned maxb, unsigned curb ) {
    return maxb<=curb
            ? value
            : roundup_helper( value | (value>>curb), maxb, curb << 1 )
            ;
}

template<typename T,
        typename = typename enable_if<is_integral<T>::value>::type,
        typename = typename enable_if<is_unsigned<T>::value>::type>
constexpr T roundup( T value ) {
    return roundup_helper( value-1, sizeof(T)*CHAR_BIT, 1 )+1;
}

另一种可能性是利用默认参数并将其全部放在一个函数中:

template<typename T,
        typename = typename enable_if<is_integral<T>::value>::type,
        typename = typename enable_if<is_unsigned<T>::value>::type>
constexpr T roundup(
        T value,
        unsigned maxb = sizeof(T)*CHAR_BIT,
        unsigned curb = 1
        ) {
    return maxb<=curb
            ? value
            : roundup( ((value-1) | ((value-1)>>curb))+1, maxb, curb << 1 )
            ;
}

This ought to implement the algorithm you give:

template<typename T>
constexpr T roundup_helper( T value, unsigned maxb, unsigned curb ) {
    return maxb<=curb
            ? value
            : roundup_helper( ((value-1) | ((value-1)>>curb))+1, maxb, curb << 1 )
            ;
}

template<typename T,
        typename = typename enable_if<is_integral<T>::value>::type,
        typename = typename enable_if<is_unsigned<T>::value>::type>
constexpr T roundup( T value ) {
    return roundup_helper( value, sizeof(T)*CHAR_BIT, 1 );
}

At least, it seems to work fine in my test program.

Alternatively, you can move the v-1 and v+1 out of the helper function like so:

template<typename T>
constexpr T roundup_helper( T value, unsigned maxb, unsigned curb ) {
    return maxb<=curb
            ? value
            : roundup_helper( value | (value>>curb), maxb, curb << 1 )
            ;
}

template<typename T,
        typename = typename enable_if<is_integral<T>::value>::type,
        typename = typename enable_if<is_unsigned<T>::value>::type>
constexpr T roundup( T value ) {
    return roundup_helper( value-1, sizeof(T)*CHAR_BIT, 1 )+1;
}

Another possibility is to take advantage of default arguments and put it all in a single function:

template<typename T,
        typename = typename enable_if<is_integral<T>::value>::type,
        typename = typename enable_if<is_unsigned<T>::value>::type>
constexpr T roundup(
        T value,
        unsigned maxb = sizeof(T)*CHAR_BIT,
        unsigned curb = 1
        ) {
    return maxb<=curb
            ? value
            : roundup( ((value-1) | ((value-1)>>curb))+1, maxb, curb << 1 )
            ;
}

相关问答

更多

编写Haskell函数来计算函数的n次幂?(Writing Haskell function to compute n-th power of a function?)

你应该将 f自己组合n次,而不是将 f自身乘以 n次; 换句话说,不是试图计算f * f * ... * f ,而是尝试计算f . f . ... . f f . f . ... . f f . f . ... . f (使用Haskell的.表示功能组合的表示法)。 由于你的问题看起来像是你被分配的测验/家庭作业,我现在还不会详细介绍; 希望以上内容足以让你入门。 Instead of multiplying f by itself n times, you should compose f b...

递归幂函数(Recursive Power Function)

从power返回值的唯一地方是e==0 。 其他情况计算值,但永远不会返回它们。 The only place you return a value from power is where e==0. The other cases compute values, but never return them.

使用C ++上的递归函数计算功率(Calculate power with a recursive function on C++)

而不是b--你需要b-1 (或--b ) b--将b减少一个,这没有效果,因为b实例永远不再使用。 它以递归方式传递b的未还原副本。 此外,当b为零时,结果应为1而不是a Instead of b-- you need b-1 (or --b) b-- reduces b by one, which has no effect because that instance of b is never used again. It passes the unreduced copy of b recu...

在方案中创建尾递归幂函数(Creating a tail-recursive power function in scheme)

答案是类似的,你只需要将累积的结果作为参数传递: (define power-is-fun (lambda (x y acc) (cond [(= y 0) acc] [(> y 0) (power-is-fun x (- y 1) (* x acc))]))) 像这样调用它,注意acc的初始值是1 (你可以为此构建一个辅助函数,所以你不必记得每次传递1 ): (power-is-fun 2 3 1) > 8 一些将递...

功率递归函数分析(Analyse of power recursive function)

这是O(n)时间,因为您从输入n向下计数到n为0。 This is O(n) time because you are counting down from the input n to where n is 0.

如何使power()函数使用小数而不是整数?(How to make the power() function use decimal instead of integer?)

使用以下 SELECT POWER( 10.0, 11 - LEN(9)) - 1 说明 当计算产生的结果超出数据类型可存储的最小值和最大值时,会发生算术溢出。 在你的情况下, POWER( 10, 11 - LEN(9))产生10000000000,并且数据类型被隐含地实现为int。 该值大于int可以采用的最大值,即2147483647,从而产生溢出。 如果在POWER( 10.0, 11 - LEN(9))使用POWER( 10.0, 11 - LEN(9)) ,则计算会生成十进制数,因为...

没有“*”的递归函数计算指数(Recursive Function to Calculate Exponential without “ * ”)

您的代码存在许多问题。 首先,你的类型检查是分形错误的(你越是深入了解它就会越来越错误)。 您应该使用isinstance(a, (int, float)) and isinstance(b, (int, float))而不是现在的后向内容。 目前您正在检查a和b是否等于类type ( int和float的类型)。 你也有表达式分组错误,因为and运算符的绑定比or s更紧密(你的代码在你想要(a or b) and (c or d)时做a or (b and c) or d )。 接下来,你定义...

编译时递归函数来计算两个整数的下一个幂?(Compile-time recursive function to compute the next power of two of an integer?)

这应该实现你给出的算法: template<typename T> constexpr T roundup_helper( T value, unsigned maxb, unsigned curb ) { return maxb<=curb ? value : roundup_helper( ((value-1) | ((value-1)>>curb))+1, maxb, curb << 1 ) ; } templ...

从递归函数返回非常大的整数(return very large integer from recursive function)

通常online judges问题不需要使用大整数(通常意味着几乎总是),如果你的解决方案需要大整数可能不是解决问题的最佳解决方案。 关于模运算的一些注释 如果a1 = b1 mod n且a2 = b2 mod n则: a1 + a2 = b1 + b2 mod n a1 - a2 = b1 - b2 mod n a1 * a2 = b1 * b2 mod n 这意味着模运算是传递的(a + b * c) mod n可以计算为(((b mod n) * (c mod n)) mod n + (a...

递归方法的幂次数为2,直到X次幂为2(Recursive method sum of powers of 2 up to Xth power of 2)

首先坚持使用int而不是Integer作为基元更快并且引入更少的开销。 其次,如果你只需要2的幂,我建议使用左移运算符<<因为它只是你需要的: public static int powerOf2Sum(int number) { if( number == 0 ) { return 1; } return (1 << number) + powerOf2Sum( number - 1 ); } 注意:请注意整数溢出,因为当功率大于32(int中的位数)时,它将翻转。 在这...

相关文章

更多

HDFS导出数据到HBase的ROW VALUE设置tricks

在做Hadoop的编程时,有时会用到HBase,常常涉及到把HDFS上面的数据导入到HBase中,在这 ...

Guava学习笔记:Guava新集合-Table等

  Table   当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map&lt; ...

table-Oceanus配置说明

作用: 描述具体的表规则 属性: name – 声明 table 名字,当命中 sql 中的 tabl ...

求教一个 table的css

想要实现这个一个Table,table的padding和下面的黑线一直实现不了,求各位大牛指点。 ...

Guava集合工具类-Table接口映射处理

System.out.println("Emp&nbsp

AngularJS资源

AngularJS是Google开源的一款JavaScript MVC框架,弥补了HTML在构建应用方 ...

2013年度最强AngularJS资源合集

AngularJS 是Google开源的一款JavaScript MVC框架,弥补了HTML在构建应用 ...

【JavaScript】 2013年度最强AngularJS资源合集

http://www.iteye.com/news/28651-AngularJS-Google-re ...

最新问答

更多

Firebird客户端安装(Firebird client installation)

您必须抓取一个zip并将FirebirdSql.Data.FirebirdClient.dll复制到bin文件夹。 我想知道你是如何编写你的应用程序,它没有文件(可能安装.msi):) You have to grap a zip and copy FirebirdSql.Data.FirebirdClient.dll to bin folder. I wonder how you wrote your application that it works without the file (pr

如何检查一个文件是否已被C中的另一个进程打开?(How to check if a file is already open by another process in C?)

除非另一个进程明确禁止访问该文件,否则无法分辨。 在MSVC中,您可以使用_fsopen()来指定_SH_DENYRD作为shflag参数。 感兴趣的是,打开一个文件是否被锁定,这个概念在多任务操作系统上存在严重缺陷。 它可能会在你发现它不是一微秒后打开。 这也是Windows没有IsFileLocked()函数的原因。 如果您需要对文件进行同步访问,则需要使用CreateMutex()将其添加到已命名的互斥体中。 There's no way tell, unless the other pr

将对象引用存储在控件标签属性确定中(Is storing an object reference in a controls Tag property OK)

是的,这是合法的,并且是Tag属性设计的模式之一。 这里最大的危险是另一个代码试图为他们自己的特性使用相同的Tag属性。 这会为Tag属性创建一场竞赛并导致运行时错误。 更安全的方法是使用Dictionary实例在Label和MyObject之间创建一个私有地图。 private Dictionary _map = new Dictionary(); ... private void Item_Clicked(object send

递归图像下载与请求(recursive image download with requests)

是的,通过并保存! import requests, pprint resp = requests.get("http://openi.nlm.nih.gov/retrieve.php", params = {"query":"Feulgen", "m": 1, "n": 12}) for i in resp.json()['list']: #pprint.pprint(i) pprint.pprint(i['imgLarge']) img = reques

C ++对齐字符以便在任何实现的输入中整齐地显示(C++ aligning characters to display neatly with any input implemented)

发生这种情况的原因是折扣的数额是可变的,并且根据它增加的空间。 正如你在示例中显示的折扣是一位数字时,对齐是所需的,否则它是不同的。 由于discoutn最多可以有三位数字(100%),所以我建议你们两个对输出进行三种格式化。 一个1位数折扣,2位数字和3位数字。 通过使用条件语句,您可以在输出中显示相应的内容。 This is happening because the amount of discount is variable and according to it the space i

根据字段值插入一行(Insert a row, based on a fields value)

DECLARE @d TABLE (Supplier VARCHAR(32), Quantity INT); INSERT @d SELECT 'ABC',3 UNION ALL SELECT 'BCD',1 UNION ALL SELECT 'CDE',2 UNION ALL SELECT 'DEF',1; WITH x AS ( SELECT TOP (10) rn = ROW_NUMBER() --since OP stated max = 10 OVER (ORDE

在Ubuntu上使用TCP_REPAIR套接字选项编译代码[关闭](Compiling code with TCP_REPAIR socket option on Ubuntu [closed])

这真的没用 #include "/usr/src/linux-headers-3.8.0-29/include/uapi/linux/tcp.h" 因为内核支持它或不支持它。 您可以这样检查: find /usr/include -type f -exec grep TCP_REPAIR {} /dev/null \; /usr/include/linux/tcp.h:#define TCP_REPAIR 19 /* TCP sock is under repair right no

在开发React应用程序时编译/转换代码(Compile/transpile code while developing React app)

您可以使用webpack配置代码,并在watch模式下运行它或在开发期间使用webpack-dev-server ,这样您就可以在任何小的更改时自动编译代码 你的webpack.config.js看起来应该是这样的 var debug=process.env.NODE_ENV !== "production"; var path=require("path"); var webpack=require("webpack"); module.exports = { context: pa

重庆软件开发培训 Java培训哪好

学软件开发和测试啊,Java和。net都还不错!!   航仕软件教育根据国家工信部对辖属700多家知名软件企业对软件开发人员,软件测试人员的需求,拥有自主知识产权的ASEC(Advanced Software Engineer Courses) 和ATEC(Advanced Test Engineer Courses)课程体系,采用科学的企业化的数字绩效考核体系和4 Action教学模式,培养企业最需要的拥有项目经验的软件工程师。 航仕软件教育根据企业用人需求,开设有以下几个专业: 软件技术 软